节点Js模块分层

卡勒姆·林宁顿

如果您有这样的服务器js:

var app = require('express'),
    http = require('http'),
    news = require('./server/api/news'),
    db = require('mongoose');

/* app config..... */
app.get('/api/news', news.list);


var server = http.createServer(app);
server.listen(app.get('port'), function () {
    console.log("Server running");
});

我想创建一个API来处理将新闻项添加到数据库中:

var db = require('mongoose');

/*** Public Interfaces ***/
function list(req, res) {
    var offset = ~~req.query.offset || 0,
        limit = ~~req.query.limit || 25;

    db.News.find(function (err, newsItems) {
        res.json(newsItems.slice(offset*limit, offset*limit + limit));
    });   
}

exports.list = list;

该API将存在于其自己的文件中,我该如何使用新模块内部db创建的实例server.js

还是在每次查询数据库时创建并打开一个新连接?

谢谢

阿德内

我可能会更像这样

服务器 :

var express = require('express'),
    app     = express(),
    http    = require('http'),
    db      = require('mongoose'),
    news    = require('./server/api/news')(db); // you can pass anything as args

app.get('/api/news', news.list);
/* add routes here, or use a file for the routes */
// app.get('/api/morenews', news.more_news); .... etc

http.createServer(app).listen(8000);

../news/index.js文件或您正在使用的任何文件中,我都会使用文字,但是您始终可以使用导出来传递每种方法

module.exports = function(db) {
    /* now db is always accessible within this scope */
    return {
        list : function (req, res) {
            var offset = ~~req.query.offset || 0,
                limit = ~~req.query.limit || 25;

            db.News.find(function (err, newsItems) {
                res.json(newsItems.slice(offset*limit, offset*limit + limit));
            });
        }, // now you can easily add more properties
        more_news : function(req, res) {
            res.end('Hello kitty');
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

导出模块中的节点js回调

来自分类Dev

无法安装深度嵌套的节点js模块

来自分类Dev

导出模块中的节点js回调

来自分类Dev

无法从节点 js 模块返回值

来自分类Dev

找不到模块“./*.env”节点js

来自分类Dev

在标准 JS 文件中包含节点模块

来自分类Dev

分层标签还是密集节点?

来自分类Dev

如何使用请求js(节点js模块)池

来自分类Dev

已安装节点JS NPM模块,但无法识别命令

来自分类Dev

节点js和phantomjs-找不到模块'弱'

来自分类Dev

节点npm-引用前端的three.js模块

来自分类Dev

m.add不是函数(新节点js模块)

来自分类Dev

如何从HTML中的节点模块引用js文件?

来自分类Dev

节点js-用户之间共享模块吗?

来自分类Dev

在AWS中找不到模块``扩展''Lambda节点JS

来自分类Dev

http节点模块中没有aplication.js

来自分类Dev

节点js和phantomjs-找不到模块'弱'

来自分类Dev

找不到模块“ ../build/Release/bson”。节点JS

来自分类Dev

节点js-用户之间共享模块吗?

来自分类Dev

无法在节点 js 中使用 ecdsa 模块签名

来自分类Dev

在 vuejs 中使用节点模块中的 js 插件

来自分类Dev

如何在节点js中动态调用模块的函数?

来自分类Dev

检查节点js中是否存在模块方法

来自分类Dev

节点错误:找不到模块“./clone.js”

来自分类Dev

在分层TreeView中删除或隐藏根节点

来自分类Dev

分层查询(如何检索中间节点)

来自分类Dev

在分层TreeView中删除或隐藏根节点

来自分类Dev

分层聚类树状图中的节点索引

来自分类Dev

具有多个节点的 Oracle 分层查询