2013-03-18 9 views
22

Dopo eseguire express mysite e `` NPM installare -d` ho aperto la directory generato con WebStorm, i seguenti metodi Express non sono riconosciuti dal IDE:Come risolvere WebStorm che non riconosce alcune proprietà di Node.js Express?

app.use(express.favicon()); 
app.use(express.logger('dev')); 
app.use(express.bodyParser()); 
app.use(express.methodOverride()); 

Come risolvere questo?

Nota: l'IDE è stato in grado di riconoscere molte nuove cose dopo l'esecuzione di this e aggiungere la directory del modulo come libreria JavaScript nelle impostazioni, ma non riconoscere ancora i metodi sopra menzionati. Vedere l'immagine per vedere che cosa l'IDE ha riconosciuto finora enter image description here

In questa immagine seguente è possibile vedere ciò che l'IDE ancora non riconosce:

enter image description here

+6

Se si fa clic nell'editor, selezionare 'Usa libreria JavaScript', e scegliere la versione del Nodo hai setup .. funziona la risoluzione? Questa è l'unica cosa che ho fatto in aggiunta al tuo passo e il completamento rapido funziona per me. –

+0

@JimSchubert Grazie per la risposta. Quello che hai detto è solo un altro modo per mostrare e abilitare/disabilitare le librerie che ho definito nell'impostazione IDE che ho menzionato. Mi stai dicendo che scrivi 'express' e poi premi CTRL + Spazio e * favicon *, * logger *, * bodyParser * vengono visualizzati? e non sono contrassegnati come problematici nel tuo IDE come sono nel mio IDE? Pls, dai un'occhiata ad entrambe le immagini che ho trovato e fammi sapere. –

+0

Ho appena guardato, e io * non * ho completato su proprietà o funzioni espresse, ma non viene visualizzato in WebStorm come problematico. Passando il mouse sopra le funzioni per il middleware, la funzione non è risolta. È piuttosto strano –

risposta

14

Questo vale per qualsiasi progetto almostly JS là fuori. Si dovrebbe esplicitamente definire le proprietà di un oggetto o di scrittura JSDocs:

/** 
* @memberOf myLib 
* or 
* @name  myLib.MyDynamicallyLoadedModule 
*/ 
var MyDynamicallyLoadedModule = {}; 

In caso contrario, WebStorm non riescono a capire che si ha proprietà dinamiche.

(sì, lo so che stai riferendosi a Express, ma è così che funziona WebStorm)

+1

Grazie per la spiegazione. –

+1

Qualcuno ha ancora scritto JSDocs per Express? –

+20

È possibile utilizzare gli stub TypeScript da https://github.com/borisyankov/DefinitelyTyped/blob/master/express/express.d.ts in WebStorm 7, incluso l'ultimo EAP. Aggiungerlo come libreria potrebbe anche essere fatto in Impostazioni | JavaScript | Librerie | Download. – de1mar

Problemi correlati