相关疑难解决方法(0)

如何在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万
查看次数

了解NodeJS中的导出

我不认为我完全理解Node.js中的exports工作方式.在一些示例代码中,我注意到以这种方式使用的对象:exports

exports = mongoose = require('mongoose')
mongoose.connect(config.db.uri)
exports = Schema = mongoose.Schema
Run Code Online (Sandbox Code Playgroud)

你使用exports =两次这样的幕后发生了什么?在我看来,"mongoose"不应该被导出.我做了这个快速测试:

var foo
  , bar

exports = foo = 'foo'
exports = bar = 'bar'

// reports 'bar' only
console.log(exports)
Run Code Online (Sandbox Code Playgroud)

第二次测试会覆盖第一次导出.

node.js

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

在expressjs中创建模型

我有一个快速应用程序,从外部API获取其数据

api.com/companies (GET, POST)
api.com/companies/id (GET, PUT)
Run Code Online (Sandbox Code Playgroud)

我想创建一个模型来使代码更容易维护,因为你可以看到我在这里重复了很多代码.

router.get('/companies', function(req, res, next) {

    http.get({
        host: 'http://api.com',
        path: '/companies'
    }, function(response) {
        var body = '';
        response.on('data', function(d) {
            body += d;
        });
    });

    res.render('companies', {data: body});
});

router.get('/companies/:id', function(req, res, next) {

    http.get({
        host: 'http://api.com',
        path: '/companies/' + req.params.id
    }, function(response) {
        var body = '';
        response.on('data', function(d) {
            body += d;
        });
    });

    res.render('company', {data: body});
});
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

javascript models node.js express

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

标签 统计

node.js ×3

express ×2

javascript ×1

models ×1

router ×1