在同一个文件夹下的情况:
1.基本的有明显get.post的方法。使用express.Router().
var express = require(\'express\');
var router = express.Router();
router.post(\'/signout\', sign.signout); // 登出
router.get(\'/signin\', sign.showLogin); // 进入登录页面
router.post(\'/signin\', sign.login); // 登录校验
router.get(\'/active_account\', sign.activeAccount); //帐号激活
2.基本的,
var app = express();
/*路由规划*/
app.get(\'/\', routes.index);
app.get("/u/:user",routes.user); //用户的主页
app.post(\'/post\',routes.post); //发表信息
app.get(\'/reg\',routes.reg); //用户注册
app.post(\'/reg\',routes.doReg);
app.get(\'/login\',routes.login);//用户登录
app.post(\'/login\',routes.doLogin);
app.get(\'/logout\',routes.logout);//用户退出
http.createServer(app).listen(app.get(\'port\'), function(){
console.log("Express server listening on port " + app.get(\'port\'));
});
3. 没有用express.Router(),但是用了app.route的方法。
var app = express();
app.route(\'/\').get(check_login_cmd(\'html\'), index_cmd);
app.route(\'/login\').get(check_logout_cmd(\'html\'), login_cmd);
//将/creative/下的请求都交给creative,即交给creative目录下的index.js
//来处理,index.js控制二级路由,/user, /ratecard等以此类推
app.use(\'/creative\', creative);
app.use(\'/user\', user);
app.use(\'/admin\', admin);
app.use(\'/ratecard\', ratecard);
app.use(\'/post\', post);
app.use(\'/spec\', spec);
app.use(\'/ueditor\', ueditor);
app.use(\'/openapi\', openapi);
在creative下的index.js文件夹下:
var express = require(\'express\');
var list_cmd = require(\'./list_cmd\');
var find_cmd = require(\'./find_cmd\');
var check_login_cmd = require(\'../auth/check_login_cmd\');
var router = express.Router();
router.get(\'/list/:appType?/:tId?\', check_login_cmd(\'html\'), list_cmd.get);
router.get(\'/find/:tId/:page/:count\', check_login_cmd(\'json\'), find_cmd.get);
在二级路由下面,公开get和post方法。
exports.get = function(req, res) {}
exports.post = function(req, res) {}
=====================================================================
=====================================================================
把路由规划引入另一个js文件的做法。用app.use方法。
1.app.use(\'/\', webRouter);
然后在webRouter的js文件;
var router = express.Router();
router.post(\'/signout\', sign.signout); // 登出
router.get(\'/signin\', sign.showLogin); // 进入登录页面
router.post(\'/signin\', sign.login); // 登录校验
router.get(\'/active_account\', sign.activeAccount); //帐号激活
2.
var app = express();
controller.route(app);
app.route(\'/\').get(check_login_cmd(\'html\'), index_cmd);
app.route(\'/login\').get(check_logout_cmd(\'html\'), login_cmd);
//将/creative/下的请求都交给creative,即交给creative目录下的index.js
//来处理,index.js控制二级路由,/user, /ratecard等以此类推
app.use(\'/creative\', creative);
app.use(\'/user\', user);
app.use(\'/admin\', admin);
==========================
模块的定义方式:
方法1.
function Person(){
var name;
this.setName = function(theName){
name = theName;
};
this.sayHello = function(){
console.log(\'Hello\',name);
};
}
// exports.Person = Person;
module.exports = Person;
方法2. 比如 site.js模块
exports.index = function (req, res, next) {}
exports.sitemap = function (req, res, next) {}
调用的方式:router.get(\'/\', site.index);
方法3:
exports.get = function(req, res) {}
exports.post = function(req, res){}
这里调用的时候,不需要写方法名。
==================================