Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.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 模块的节点js包_Javascript_Node.js_Model View Controller_Express - Fatal编程技术网

Javascript 模块的节点js包

Javascript 模块的节点js包,javascript,node.js,model-view-controller,express,Javascript,Node.js,Model View Controller,Express,说明: 我有一个node js项目,我有包模型(其中包含带有我的模型对象的模块),有routes包(其中存储了带有routes handler函数的模块),还有带有“express”配置和http服务器的app.js文件 问题是:如何将模型对象从models包导入routes包index.js模块 index.js: var ArticleProvider = require('smth goes here').ArticleProvider; var articleProvider= new

说明: 我有一个node js项目,我有包模型(其中包含带有我的模型对象的模块),有routes包(其中存储了带有routes handler函数的模块),还有带有“express”配置和http服务器的app.js文件

问题是:如何将模型对象从models包导入routes包index.js模块

index.js:

var ArticleProvider = require('smth goes here').ArticleProvider;

var articleProvider= new ArticleProvider();

exports.index = function(req, res){
    articleProvider.findAll(function(error, docs){
        //console.log(error)
        res.send(docs);
  });
};
mymodel.js

ArticleProvider = function(){};
ArticleProvider.prototype.dummyData = [];
ArticleProvider.prototype.findAll = function(callback){
    callback(null, this.dummyData);
};

ArticleProvider.prototype.save = function(articles, callback) {
    var article = null;
    if (typeof(articles.length) == "undefined") { articles = [articles]; }

    //callback();
};

exports.ArticleProvider = ArticleProvider;
注意:我可以从底层导入任何内容(例如:如果我想在routes包中包含models包。示例:
要求(“./models/mymodel.js”)
)。

查看npm链接


它允许您将包作为依赖项构建到节点单元模块中,然后您可以在任何地方需要它

解决方案是

var ArticleProvider = require('../models/articleprovider.js').ArticleProvider;

我是node.js的新手,这样存储模型是一种很好的做法吗?是的,这是一种方法。您可以使用的另一个选项是将您的包发布到npm数据库中,然后“npm安装”它,或者将它存储到您的how repo(github等)中。我们谈论的不是一般的包,而是作为更大应用程序一部分的模块。