我想将路由与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;
还有app / routes / routes.js
var express = require('express');
var router = express.Router();
router.use(function(req, res, next) {
console.log('Something is happening.');
next();
});
router.get('/', function(req, res) {
res.json({ message: 'hooray! welcome to our rest video api!' });
});
router.route('/videos')
.post(function(req, res) {
var video = new Video();
video.title = req.body.title;
video.save(function(err) {
if (err)
res.send(err);
res.json({ message: 'Video criado!' });
});
})
.get(function(req, res) {
Video.find(function(err, videos) {
if (err)
res.send(err);
res.json(videos);
});
});
module.exports.router = router;
就将路由与主文件分开而言。
Server.js
//include the routes file
var routes = require('./routes/route');
var users = require('./routes/users');
var someapi = require('./routes/1/someapi');
////////
app.use('/', routes);
app.use('/users', users);
app.use('/1/someapi', someapi);
路线/route.js
//last line - try this
module.exports = router;
同样对于新项目,您可以在命令行上尝试
express project_name
您将需要为此的快递发电机
我尝试了以下示例:从Express.js中删除所有头,在Express node.js中禁用etag头,以及https://github.com/expressjs/Express/issues/2472,但不幸的是,它们没有解决我的问题。在Firefox、Opera和Chrome中,当开发者工具打开并禁用缓存时,或者当我在浏览器上线后第一次启动应用程序时,我的应用程序都能正常工作。我知道这与缓存
问题内容: 我正在使用Angular2开发NodeJS应用程序。在我的应用程序中,我有一个主页和搜索页面。对于主页,我有一个将为 localhost:3000 /* 呈现的HTML页面,并且从主页用户导航到 搜索, 即 我由 angular2路由 处理的 localhost:3000 / search 页面。 * 我没有搜索页面的页面,其视图由angular2呈现。但是当我直接点击 localho
我已经在Windows上运行了Node.jsV0.8.0。我可以运行最新的安装程序将其升级到V0.8.4吗?我担心它会破坏我机器上现有的第三方模块。
用 nvm 安装最新的 node.js 要在 Ubuntu 上建立一个 node.js 的开发环境有很多方法. 你可以直接下载原始码自己编译, 或者是用套件管理系统来帮你解决这些琐碎的问题. 因为 node.js 还是一个很年轻的专案, 常常会有版本的更新. 手动安装及更新实在是非常的累人。若是使用 apt-get 来帮你处理这些问题可以让你把时间花在写程式而不是设定环境上面。 另外也可以使用 n
问题内容: 我试图在Sublime上为Node.js建立一个构建系统,所以我可以按F7键在打开的文件上调用“节点”。问题在于该过程将永远开放,因此,第二次使用F7时,我会获得一个加载项。 有没有办法可以杀死来自node.js的打开的“ node.exe”进程? 问题答案: 使用以下命令集来标识在给定端口上运行的进程并从命令行终止该进程 它将输出类似于以下所示的详细信息 然后使用 终止该过程。使用再
我正在尝试为Node建立一个构建系统。js在sublime上,所以我可以按F7在打开的文件上调用“节点”。问题是,该过程将永远打开,因此,第二次使用F7时,我将使用一个外接程序。 有没有办法杀死node.js?打开的“node.exe”进程