[英]Nodejs Mongoose - Model not defined
我正在尝试使用猫鼬将一些数据发送到数据库。 到目前为止,这是我的代码。
server.js
var express = require('express');
var wine = require('./routes/wines');
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
var app = express();
app.use(bodyParser.urlencoded({ extended: true}));
app.use(bodyParser.json());
app.get('/wines', wine.findAll);
app.get('/wines/:id', wine.findById);
app.listen(3000);
console.log('Listening on port 3000...');
wine.js(在models文件夹内)
var mongoose = require('mongoose');
var db = mongoose.connection;
var wineSchema = new mongoose.Schema({
name: String,
description: String
});
var Wine = mongoose.model('Wine', wineSchema);
module.exports = Wine;
wines.js(在routes文件夹内)
exports.addWine = function(req, res) {
// Problem not defined here
var silence = new Wine({ name: 'Silence', description:"cena" })
console.log(silence.name) // 'Silence'
// add it to the database
};
我不断收到此错误,我也不知道为什么。 ReferenceError: Wine is not defined
我已经将Wine导出到wine.js(模型)中,难道我不能在任何地方使用它吗?
先感谢您 !
添加var Wine = require('./../models/wine.js');
在wines.js
的开头(假设您的routes
和models
文件夹包含在同一目录中)。
从节点模块导出对象/值/功能不会使它们在其他模块中全局可用。 导出的对象/值/函数从require
中返回(更多信息请参考这里 )。 也就是说,Mongoose使用内部全局缓存来存储模型和模式,从而通过整个应用程序中的Mongoose(或连接)使其可用。
因此,在您的路线文件中,您可以执行以下操作:
var Wine = mongoose.model('Wine'); // Notice we don't specify a schema
exports.addWine = function(req, res) {
var silence = new Wine({ name: 'Silence', description:"cena" })
console.log(silence.name) // 'Silence'
// add it to the database
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.