Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 猫鼬没有定义_Node.js_Express_Mongoose - Fatal编程技术网

Node.js 猫鼬没有定义

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

下面,我将使用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: 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())