我需要一个有多个页面的公司网站
我已经能够使用以下代码生成那些页面(使用ECT模板引擎):
var http = require('http');
var url = require('url');
var ECT = require('ect');
var renderer = ECT({ root : __dirname + '/views' });
var data = { title : 'blabla' };
var front = renderer.render('front.ect', data);
var aboutus = renderer.render('aboutus.ect', data);
var ourtechnology = renderer.render('ourtechnology.ect', data);
var anypath = renderer.render('anypath.ect', data);
var server=http.createServer(function(req,res){
var pathname=url.parse(req.url).pathname;
switch(pathname){
case '/':
res.writeHead(200, {'Content-Type': 'text/html'});
res.end(front);
break;
case '/aboutus':
res.writeHead(200, {'Content-Type': 'text/html'});
res.end(aboutus);
break;
case '/ourtechnology':
res.writeHead(200, {'Content-Type': 'text/html'});
res.end(ourtechnology);
break;
default:
res.writeHead(200, {'Content-Type': 'text/html'});
res.end(anypath);
break;
}
}).listen(80);
console.log('Server running');
但上面的代码是硬编码的。
如何在没有硬编码的情况下进行URL调度?
(我需要能够像发布博客文章一样创建页面)
我更喜欢MySQL用于数据库,需要指导从哪里开始
答案 0 :(得分:1)
根据您的需要,您应该使用快递,然后问题变为:
var express = require('express');
var app = express();
app.get('/', callback_for_root_dir);
app.get('/aboutus', callback_for_aboutus);
app.get('/ourtechnology', callback_for_ourtechnology);
app.get('*', default_callback);
app.listen(80);
使用MySQL进行路由会很尴尬,因为如何用新路径定义相应的回调?您仍然需要在Node.js中编写回调代码并重新启动应用程序,因此使用MySQL数据进行路由没有多大意义。此外,您可以使用功能强大的正则表达式来表达Express。
答案 1 :(得分:1)
您还可以使用库来扩展快速正常路由,甚至可以对路由进行软编码 更多。