大佬教程收集整理的这篇文章主要介绍了node.js – 在不同的文件中划分节点应用程序,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
例如,我正在定义所有我的mongoose模式和主文件中的路由.下面是socket.IO连接的所有功能.但是现在我想为模式添加一个额外的文件,一个用于路由的额外文件和一个用于函数的文件.
当然,我知道可以编写自己的模块或加载带有require的文件.这对我来说没有意义,因为我无法使用像app,io或db这样的vars而不会让它们变得全局化.如果我将它们传递给我的模块中的函数,我就无法改变它们.我错过了什么?我想看一个例子,如何在不使用全局变量的情况下实现这一点.
例如,如果您要将数据库逻辑从主应用程序中分离出来,您应该能够这样做,因为数据库逻辑不应该依赖于应用程序或io – 它应该能够独立工作,而您要求它进入你的应用程序的其他部分使用它.
这是一个相当基本的例子 – 它比实际代码更伪代码,因为重点是通过示例演示模块化,而不是编写一个有效的应用程序.它也是您决定构建应用程序的众多方法中的一种.
// ============================= // db.js var mongoose = require('mongoose'); mongoose.connect(/* ... */); module.exports = { User: require('./models/user'); OtherModel: require('./models/other_model'); }; // ============================= // models/user.js (similar for models/other_model.js) var mongoose = require('mongoose'); var User = new mongoose.scheR_370_11845@a({ /* ... */ }); module.exports = mongoose.model('User',User); // ============================= // routes.js var db = require('./db'); var User = db.User; var OtherModel = db.otherModel; // This module exports a function,which we call call with // our Express application and Socket.IO server as arguments // so that we can access them if we need them. module.exports = function(app,io) { app.get('/',function(req,res) { // home page logic ... }); app.post('/users/:id',res) { User.create(/* ... */); }); }; // ============================= // realtime.js var db = require('./db'); var OtherModel = db.otherModel; module.exports = function(io) { io.sockets.on('connection',function(socket) { socket.on('someEvent',function() { OtherModel.find(/* ... */); }); }); }; // ============================= // application.js var express = require('express'); var sio = require('socket.io'); var routes = require('./routes'); var realtime = require('./realtime'); var app = express(); var server = @R_673_10107@.createServer(app); var io = sio.listen(server); // all your app.use() and app.configure() here... // Load in the routes by calling the function we // exported in routes.js routes(app,io); // Similarly with our realtime module. realtime(io); server.listen(8080);
以上是大佬教程为你收集整理的node.js – 在不同的文件中划分节点应用程序全部内容,希望文章能够帮你解决node.js – 在不同的文件中划分节点应用程序所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。