我刚开始学习Node.js.这个小应用程序的想法是使用express和mongosse将一些用户存储在基于云的数据库(通过mlab的mongoDB)中。
我有两个单独的文件:
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...
你对这个错误有任何想法吗?
Mongoose希望您使用内置构造函数指定类型,这些函数以大写字母命名,例如: String
,Number
,Boolean
等
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)在新脚本(vm.js:79:7)的参数列表之后,在create.incompile上的Object.runInThisContext(vm.js:303:10)中的createScript(vm.js:251:10)处(内部/ modules / cjs / loader.js:657:28)在Module.load的Object.Module._extensions..js(internal / modules / cjs / loader.js:700:10)中(internal / modules / cjs / loader.js :599:32)在Function.Module.rload(internal / modules / cjs / loader.js:530:3)的tryModuleLoad(internal / modules / cjs / loader.js:538:12)处于Function.Module.runMain(内部/ modules / cjs / loader.js:742:12)启动时(内部/ bootstrap / node.js:283:19)我纠正错误[nodemon]由于更改而重启... [nodemon]启动
node server.js
这就对了。检查代码中的错误,nodemon会自动启动服务器。这就是为什么nodemon是最好的,而不是每次更改代码时都必须启动node filename.js cz。
[nodemon]应用程序崩溃 - 在开始之前等待文件更改...
您可以通过将"start": "nodemon server.js"
条目添加到package.json
文件来修复此错误。
使用此命令测试:
npm install --save express-load
很多时候我们关闭了PC并让项目继续运行,当我们再次使用它并再次运行项目时,出现了错误。我总是解决它,重新启动电脑。一切都很完美。