簡體   English   中英

nodemon - 應用程序崩潰 - 在啟動之前等待文件更改

[英]nodemon - app crashed - waiting for file changes before starting

我剛開始學習 Node.js。 這個小應用程序的想法是使用 express 和 mongosse 將一些用戶存儲在一個基於雲的數據庫中(通過 mlab 的 mongoDB)。

我有兩個單獨的文件:

User.js(模型/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...

你對這個錯誤有什么想法嗎?

Mongoose 期望您使用內置構造函數指定類型,這些構造函數以大寫字母命名,例如StringNumberBoolean等。

var mongoose = require('mongoose');

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

   email : String ,
   pwd : String

});

定義

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

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

代碼中沒有字符串變量。

出現任何小錯誤時都會出現此消息。 當module.exports 類型為module.export 時,我也遇到了這個問題,只是錯過了's'。

我遇到了這樣的錯誤,在我的情況下,它是節點 js 文件中的語法錯誤。檢查你的代碼是否有錯誤,因為 nodemon 監聽更改並運行,如果那里沒有錯誤。 這是使應用程序崩潰的錯誤....

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

SyntaxError: missing ) at new Script (vm.js:79:7) at createScript (vm.js:251:10) at Object.runInThisContext (vm.js:303:10) at Module._compile (internal/ modules/cjs/loader.js:657:28) 在 Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10) 在 Module.load (internal/modules/cjs/loader.js :599:32) at 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] 啟動node server.js

就是這樣。 檢查代碼中的錯誤,nodemon 會自動啟動服務器。這就是為什么 nodemon 最好而不是每次更改代碼時都必須啟動時使用 node filename.js cz。

常見原因是您嘗試從未列入白名單的 IP 訪問數據庫。 就我而言,我正在另一台 PC 上處理同一個項目。 因此,我不得不將 PC IP 列入白名單。 為此,請登錄到您的雲基礎 mongodb,導航到您的特定 db 項目,然后單擊網絡訪問、添加 IP 地址並單擊當前 IP 地址。 另外,請確保在您的終端上運行 mongod 來啟動您的 mongodb。 那為我解決

[nodemon] 應用程序崩潰 - 在開始之前等待文件更改...


您可以通過在package.json文件中添加"start": "nodemon server.js"條目來修復此錯誤。

用這個命令測試:

npm install --save express-load

很多時候我們關閉PC並讓項目運行,當我們再次使用它並再次運行項目時,就會出現該錯誤。 我總是解決它,重新啟動電腦。 一切都很完美。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM