相关疑难解决方法(0)

如何组织大型Node.js项目

组织大型Node.js项目有哪些好方法?

例如,一个使用express.js和socket.io的应用程序?这将包括应用程序逻辑结构以及文件系统.

目前,我发现自己将大量代码推入单个主js文件并将代码放入一个巨大的全局对象中,它感觉很顽皮.

node.js

82
推荐指数
2
解决办法
4万
查看次数

如何在Node.js和Express 4上分离路由?

我想将路由与server.js文件分开.

我正在关注Scotch.io的这个教程 http://scotch.io/tutorials/javascript/build-a-restful-api-using-node-and-express-4

如果所有行都在server.js文件上,则它正在工作.但我没能分开.我怎样才能做到这一点?

server.js

// set up ======================================================================
var express = require('express');
var app = express();
var bodyParser = require('body-parser');

// configuration ===============================================================
app.use(bodyParser());

var port = process.env.PORT || 8000;

var mongoose = require('mongoose');
var database = require('./config/database');
mongoose.connect(database.url);
var Video = require('./app/models/video');

// routes =======================================================================
app.use('/api', require('./app/routes/routes').router);

// listen (start app with node server.js) ======================================
app.listen(port);
console.log("ready captain, on deck" + port);

module.exports = app;
Run Code Online (Sandbox Code Playgroud)

和app/routes/routes.js

var express = require('express');
var router = express.Router();

router.use(function(req, res, next) { …
Run Code Online (Sandbox Code Playgroud)

router node.js express

57
推荐指数
5
解决办法
7万
查看次数

"express.Router"和使用"app.get"的路由有什么区别?

我有一个带有以下代码的应用程序:

var router = express.Router(); 
router.post('/routepath', function(req, res) {});
Run Code Online (Sandbox Code Playgroud)

现在我必须把路由代码在不同的文件,所以我试图用这种方法,但它不是,因为不是工作也许express.Router()它使用:

app.post("/routepath", function (req, res) {});
Run Code Online (Sandbox Code Playgroud)

如何使用路由器在不同的文件中express.Router()

为什么app.get,app.post,app.delete,等,都没有工作在app.js使用后express.Router()在其中?

routes node.js express

28
推荐指数
1
解决办法
9159
查看次数

你如何模块化Node.JS w/Express

我正在尝试模块化我的node.js应用程序(使用快速框架).我遇到的麻烦是在设置我的路线时.

我无法再提取发送到帖子的数据.(req.body未定义).如果它们都在同一个文件中,则可以正常工作.我在这里做错了什么,在node.js中模块化代码的最佳方法是什么?

我的app.js.

require('./routes.js').setRoutes(app);
Run Code Online (Sandbox Code Playgroud)

我的路线.js

exports.setRoutes = function(app){

  app.post('/ask', function(req, res, next){
    time = new Date();

    var newQuestion = {title: req.body.title, time: time.getTime(), vote:1};
    app.questions.push(newQuestion);
    res.render('index', {
      locals: {
        title: 'Questions',
        questions: app.questions
      }
    });
});
Run Code Online (Sandbox Code Playgroud)

javascript node.js express

13
推荐指数
1
解决办法
1万
查看次数

将 socket.io 命名空间分离到单独的文件中

我编写了两个相对较大的 socket.io 应用程序,一个用于玩游戏,另一个用于聊天,我将它们分成两个命名空间。

我现在想将这些从我的主文件中app.js移到某个命名空间目录中,并且只需要在我的 express 应用程序中使用它们,从而保留所有功能。

我将如何解决这个问题,或者有什么方法可以以其他方式获得我想要做的事情的效果?

namespaces node.js express socket.io

5
推荐指数
1
解决办法
1577
查看次数

将快速路由分解为单独的文件

我已经尝试了我在 s/o 上找到的所有答案,我确定我一定遗漏了一些东西。什么对我没有错误而是给了我一个 404。我尝试了来自Node.js 中组织路由的答案,strongloop 的路由分离模式,来自如何在 Express 中的多个文件中包含路由处理程序的答案, 遇到类似Router.use 需要中间件功能的错误但这些答案都没有奏效。在 Express 4.0无法将路由拆分为单独的文件的答案不会出错,但也会出现 404。似乎每个答案都有不同的语法和风格,也许是我混合和匹配不正确?

现在我的 /routes/persons.js 有这个模式:

    var express = require('express');
    var persons = express.Router();

    persons.route('/persons/:user_id')
        .put(function (req, res, next) {
            // etc
    });

    module.exports = persons;       
Run Code Online (Sandbox Code Playgroud)

在我的 server.js 文件中,我有:

    var persons = require('./routes/persons');
    app.use('/persons', persons);
Run Code Online (Sandbox Code Playgroud)

这种组合不会引发错误,但也不会执行任何操作。我尝试将端点添加到 server.js 行:

    var persons = require('./routes/persons');
    app.get('/persons/:user_id', persons.addpersons);
Run Code Online (Sandbox Code Playgroud)

并将 people.js 剥离为仅导出功能:

    exports.addpersons = function (req, res, next) { …
Run Code Online (Sandbox Code Playgroud)

javascript node.js express

4
推荐指数
1
解决办法
2556
查看次数

具有多个文件nodejs的路由

我想在多个文件中路由

var routes=require('./routes');
Run Code Online (Sandbox Code Playgroud)

在routes/index.js中

exports.inicio=require('./inicio')
exports.home=require('./home')
Run Code Online (Sandbox Code Playgroud)

在inicio.js

exports.index=function(req,res){res.render('index/index',{title: 'Bienvenido a Inmoweb'});}
Run Code Online (Sandbox Code Playgroud)

在home.js

exports.nosotros=function(req, res){res.render('index/nosotros',{title:'Nosotros'});}
Run Code Online (Sandbox Code Playgroud)

当我console.log(路线)

{
inicio: {index:[function]}, 
home: {nosotros:[function]}
}
Run Code Online (Sandbox Code Playgroud)

所以我打电话给应用程序

app.get('/',routes.inicio.index);
Run Code Online (Sandbox Code Playgroud)

但我想这样打电话

app.get('/',routes.index);
app.get('/nosotros',routes.nosotros);
Run Code Online (Sandbox Code Playgroud)

和console.log supose是????

{
  index:[function], 
  nosotros:[function]
}
Run Code Online (Sandbox Code Playgroud)

怎么做???tnx全部

javascript node.js express

2
推荐指数
1
解决办法
980
查看次数

Node.js Express服务器端结构

我正在尝试为我的服务器及其结构找到解决方案.我想要做的就是分开.

app.post("/login", function(request, response) {  
});

app.post("/register", function(request, response) {  
});

app.get("/", function(request, response) {  
});
Run Code Online (Sandbox Code Playgroud)

到不同的文件.在我的例子中,他们都站在一个名为"server.js"的文件中.我怎样才能将它们分开来更好地处理它们?并同时运行它们.我搜索了这种情况,发现了不同类型的这种情况.但无法得到明确的答案.

javascript node.js express

1
推荐指数
1
解决办法
439
查看次数

标签 统计

node.js ×8

express ×7

javascript ×4

namespaces ×1

router ×1

routes ×1

socket.io ×1