nodemon - app崩溃 - 在开始之前等待文件更改

时间:2017-11-15 17:02:44

标签: node.js mongodb express mongoose nodemon

我刚开始学习Node.js.这个小应用程序的想法是使用express和mongosse将一些用户存储在基于云的数据库中(mongoDB通过mlab)。

我有两个单独的文件:

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:pwd@ds261755.mlab.com: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...

您对此错误有任何疑问吗?

8 个答案:

答案 0 :(得分:2)

Mongoose希望您使用内置构造函数指定类型,这些函数以大写字母命名,例如: StringNumberBoolean

var mongoose = require('mongoose');

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

   email : String ,
   pwd : String

});

答案 1 :(得分:1)

定义

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

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

代码中没有字符串变量。

答案 2 :(得分:1)

出现任何小错误时,此消息将始终出现。 当module.exports类型为module.export时,我也遇到了这个问题,只错过了's'。

答案 3 :(得分:0)

我遇到了这样的错误,在我的情况下,这是node 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(内部/模块/cjs/loader.js:657:28)           在Object.Module._extensions..js(内部/模块/cjs/loader.js:700:10)           在Module.load(internal / modules / cjs / loader.js:599:32)           在tryModuleLoad(内部/模块/cjs/loader.js:538:12)           在Function.Module._load(内部/模块/cjs/loader.js:530:3)           在Function.Module.runMain(内部/模块/cjs/loader.js:742:12)           在启动时(internal / bootstrap / node.js:283:19)我更正了错误[nodemon]由于更改而重新启动... [nodemon]   开始node server.js

就是这样。检查代码中的错误,nodemon会自动启动服务器。这就是为什么nodemon最好而不是每次更改代码时都必须启动时使用node filename.js的原因。

答案 4 :(得分:0)

常见的原因是您试图从未列入白名单的IP访问数据库。 就我而言,我正在另一台PC上从事同一项目。因此,我不得不将PC IP列入白名单。 为此,登录到您的云基础mongodb,导航到您的特定数据库项目,然后单击网络访问,添加IP地址并单击当前ip地址。 另外,请确保在终端上运行mongod以启动mongodb。 那为我解决了

答案 5 :(得分:-1)

[nodemon]应用程序崩溃-等待文件更改,然后再开始...


您可以通过在"start": "nodemon server.js"文件中添加package.json条目来解决此错误。

答案 6 :(得分:-1)

使用以下命令进行测试:

npm install --save express-load

答案 7 :(得分:-1)

很多时候我们关闭PC并使项目运行,当我们再次使用它并再次运行该项目时,就会出现该错误。我总是解决它,重新启动电脑。一切正常。