web-dev-qa-db-ja.com

nodemon-アプリがクラッシュしました-開始する前にファイルの変更を待機しています

Node.jsの学習を始めたばかりです。この小さなアプリケーションのアイデアは、expressとmongosseを使用して、一部のユーザーをベースのクラウドデータベース(mlab経由のmongoDB)に格納することです。

私は2つの別々のファイルを持っています:

User.js(models/User.js)

var mongoose = require('mongoose');

module.exports = mongoose.model('User', {

   email : string ,
   pwd : string

});

server.js(ドシエルート)

var express = require('express')
var cors = require('cors')
var bparser = require('body-parser')
var mongoose = require('mongoose')

var User = require('./models/User.js')

var app = express()

app.use(cors())
app.use(bparser.json())

app.post('/register', (req,res) => {
    userData = req.body;
    var user = new User(userData);

    user.save((err, result) => {
        if(err) console.log('IL YA UNE ERREUR')
        result.sendStatus(200);
    })

})

mongoose.connect('mongodb://user:[email protected]:61755/myapp', { useMongoClient: true } , (erreur) => {
    if(!erreur) 
    console.log('Connexion etablie');
})


app.listen(3000)

実行すると:nodemon server.js、以下のエラーが発生します:

D:\Bureau\MEAN\appBackend\models\User.js:5
   email : string ,
           ^

ReferenceError: string is not defined
    at Object.<anonymous> (D:\Bureau\MEAN\appBackend\models\User.js:5:12)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (D:\Bureau\MEAN\appBackend\server.js:6:12)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.runMain (module.js:604:10)
    at run (bootstrap_node.js:389:7)
[nodemon] app crashed - waiting for file changes before starting...

このエラーについて何か考えがありますか?

2
MDIT

Mongooseは、大文字で名前が付けられた組み込みのコンストラクター関数を使用して型を指定することを想定しています。 StringNumberBooleanなど。

var mongoose = require('mongoose');

module.exports = mongoose.model('User', {

   email : String ,
   pwd : String

});
2
Raphael Serota

このメッセージは、小さな間違いがあると常に表示されます。 module.exportsタイプがmodule.exportとして、「s」だけを見逃したときにもこれに直面しました。

定義する

module.exports = mongoose.model('User', new mongoose.Schema({ 

   email : 'string' ,
   pwd : 'string'
   })
});

コードに文字列変数はありません。

1
Himanshu sharma

私はそのようなエラーに遭遇しました、そして私の場合、それはノードjsファイルの構文エラーでした。nodemonが変更をリッスンし、エラーがない場合は実行するので、コードにエラーがないか確認してください。これは、アプリをクラッシュさせるエラーでした..。

console.log("this is author",cope["author"];

SyntaxError:欠落)新しいスクリプト(vm.js:79:7)、createScript(vm.js:251:10)、Object.runInThisContext(vm.js:303:10)、Module._compile(internal/modules/cjs/loader.js:657:28)at Object.Module._extensions..js(internal/modules/cjs/loader.js:700:10)at Module.load(internal/modules/cjs/loader.js :599:32)tryModuleLoad(internal/modules/cjs/loader.js:538:12)at Function.Module._load(internal/modules/cjs/loader.js:530:3)at Function.Module.runMain( internal/modules/cjs/loader.js:742:12)起動時(internal/bootstrap/node.js:283:19)変更により[nodemon]が再起動するというエラーを修正した後... [nodemon] start node server.js

それだ。コードのエラーをチェックすると、nodemonは自動的にサーバーを起動します。そのため、コードを変更するたびに起動する必要があるたびにnode filename.jsczを使用するよりもnodemonが最適です。

0
yosef girma