Node.js 猫鼬没有定义
下面,我将使用express和mongo创建一个待办事项列表。我收到以下错误:Node.js 猫鼬没有定义,node.js,express,mongoose,Node.js,Express,Mongoose,下面,我将使用express和mongo创建一个待办事项列表。我收到以下错误: body-parser deprecated undefined extended: provide extended option server.js:12:20 C:\todoListApi\api\controllers\todoListController.js:4 var Task = mongoose.model('Tasks'); ^ ReferenceError: mongoos
body-parser deprecated undefined extended: provide extended option server.js:12:20
C:\todoListApi\api\controllers\todoListController.js:4
var Task = mongoose.model('Tasks');
^
ReferenceError: mongoose is not defined
at Object.<anonymous> (C:\todoListApi\api\controllers\todoListController.js:4:12)
...
但它也在server.js中定义:
var express = require('express'),
app = express(),
port = process.env.PORT || 3000,
mongoose = require('mongoose'),
Task = require('./api/models/todoListModel'),
bodyParser = require('body-parser');
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://localhost/Tododb');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.urlencoded(bodyParser.json()));
var routes = require('./api/routes/todoListRoutes');
routes(app);
app.listen(port);
console.log('todo list RESTful API server started on: ' + port)
我将原来的教程改为add.Mongoose,因为这篇文章说它会起作用。正如他在评论中所说的,您的Mongoose变量被定义为Mongoose,但在整个代码中被访问为Mongoose,而不使用第三个o
至于bodyParser问题,您没有将bodyParser.json包装在bodyParser.urlencoded中间件中。bodyParser.json正在返回自己的中间件函数,该函数需要直接传递给express服务器
app.use(bodyParser.urlencoded({extended: true})
app.use(bodyParser.json())
你要求mongoose在变量mongoose中加上3'o'@Jérôme:Nice spot:pOK,这很有效,但现在它给了我Task=mongoose.model不是一个函数。有什么想法吗?好的,我拿出了。mongoose解决了这个问题。谢谢
app.use(bodyParser.urlencoded({extended: true})
app.use(bodyParser.json())