【发布时间】:2016-03-08 21:35:35
【问题描述】:
我有 PHP MVC 的背景,刚开始学习 Nodejs。 这是我的应用目录结构:
根
- 控制器
-user.js
- 模型
-user.js
- 上市
-样式表
-style.css
- 意见
-index.jade
- 应用程序.js
- 包.json
- gulpfile.js
这是我的控制器文件:user.js
var User = require('../models/user.js');
exports.list = function(req, res){
User.find(function(err, users) {
res.send(users);
});
};
这是我的模型文件:user.js
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
mongoose.createConnection('mongodb://localhost/mydb');
var userSchema = new Schema({
name: String,
country: String,
email: String,
password: String,
});
module.exports = mongoose.model('user', userSchema);
下面是我的 app.js 文件:
/** * 模块依赖。 */
var express = require('express')
, controllers = require('./controllers')
, employee = require('./controllers/employee')
, user = require('./controllers/user')
, http = require('http')
, path = require('path');
var app = express();
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.static(path.join(__dirname, 'public')));
app.get('/', controllers.index);
app.get('/employees', employee.list);
app.get('/user',user.list);
http.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
我使用命令行在 mongo 中创建了一个数据库,下面是我的收藏列表:
我可能仍然认为它是 php 的方式并且在这里遗漏了一些要点。有人可以指出我在这里做错了什么吗?
【问题讨论】:
-
数据库名称应为
users -
或者更重要的是,因为@Yerken 提到您当前的“收藏”名称是
user而不是猫鼬所期望的users,然后将模型定义为mongoose.model("user",userSchema,"user")。其中“第三个”参数设置集合名称。 -
@Yerken 谢谢!将数据库从“用户”重命名为“用户”实际上起到了作用。另外,我是否使用也没关系: module.exports = mongoose.model('user', userSchema);或 module.exports = mongoose.model('users', userSchema);数据库重命名后。
标签: javascript node.js mongodb express mongoose