Javascript 如何使用node.js从mongoose模型中获取数据并使用mvc等变量存储
下面的代码是PHP中的MVC框架代码示例。我还需要与node.js和mongoose中相同的过程 我正在使用Node.js、MongoDB和restapi开发 控制器文件:Javascript 如何使用node.js从mongoose模型中获取数据并使用mvc等变量存储,javascript,node.js,express,model-view-controller,data-manipulation,Javascript,Node.js,Express,Model View Controller,Data Manipulation,下面的代码是PHP中的MVC框架代码示例。我还需要与node.js和mongoose中相同的过程 我正在使用Node.js、MongoDB和restapi开发 控制器文件: 假设您在mongoose中有用户模式,它应该充当模型 // userModel.js var mongoose = require('mongoose'); var Schema = mongoose.Schema; var user = new Schema({ name: { type: String, requi
假设您在mongoose中有用户模式,它应该充当模型
// userModel.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var user = new Schema({
name: { type: String, required: true },
dob: { type: Date },
email: { type: String, required: true, unique: true, lowercase: true},
active: { type: Boolean, required: true, default: true}
}, {
timestamps: {
createdAt: 'created_at',
updatedAt: 'updated_at'
}
});
var userSchema = mongoose.model('users', user);
module.exports = userSchema;
参考:使用restify、mongoose、jwt和restify jwt创建应用程序。在谷歌搜索。你会发现很多博客展示了实现。在那里,我们将适当地提到猫鼬模型和restapi@Priya,已经基于基于谷歌搜索的博客示例开发了API。在node.js中,已将模型、控制器和路由分离。所以在这里,我需要始终使用mongoose查询方法(每次需要编写查询)从模型文件中获取数据。所以我需要使用模型函数来获取所有控制器的数据,所以需要解决这个问题。没有像mongoose查询方法那样的方法。但是你总是可以使用mongoose预定义的方法,比如find
,findOne
,exec
,distinct
,aggregate
,findById
,count
等。参考:谢谢你的回答。还有一件事,我可以在文件权限内的任何位置使用此公用函数。对不起,没有公用函数。可以直接导出该方法,也可以从中创建对象并导出。比如var user={getUserByEmail:getUserByEmail};module.exports=用户代码>公共函数只是公开的作用域变量。私有的,不能公开的。了解exports
在nodejst中的使用这与问题并不完全相关,但为什么控制器通过电子邮件(user.findOne)查找用户不是该模型的工作?比如,模型与数据库交互,对吗?
<?php
class Mymodel {
public function get_country_details($cid) {
$details = $this->db->table('country')->where('country_id',$id);
return $details;
}
}
// userModel.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var user = new Schema({
name: { type: String, required: true },
dob: { type: Date },
email: { type: String, required: true, unique: true, lowercase: true},
active: { type: Boolean, required: true, default: true}
}, {
timestamps: {
createdAt: 'created_at',
updatedAt: 'updated_at'
}
});
var userSchema = mongoose.model('users', user);
module.exports = userSchema;
// userController.js
var User = require('./userModel');
exports.getUserByEmail = function(req, res, next) {
var email = req.param.email;
User.findOne({ email: email }, function(err, data) {
if (err) {
next.ifError(err);
}
res.send({
status: true,
data: data
});
return next();
});
};