Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.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
Javascript 如何使用node.js从mongoose模型中获取数据并使用mvc等变量存储_Javascript_Node.js_Express_Model View Controller_Data Manipulation - Fatal编程技术网

Javascript 如何使用node.js从mongoose模型中获取数据并使用mvc等变量存储

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

下面的代码是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, 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();
    });
};