前提是搭建好了环境,node,npm,express;(推荐全局安装)
开始用express创建一个基础工程:
express –t ejs microblog
进入文件夹之后
npm-install(自动安装好要用的依赖)
这个时候,用浏览器访问localhost:3000,就可以出来一个欢迎界面了,这里简单说下原理:当你在浏览器输入这个地址砸下回车的瞬间,node搭建的一个网站后台程序开始工作,在app.js这个文件里面,有app.get(‘/’, routes.index);这一句话的作用就是当你访问‘/’的时候,把你的请求‘/‘ 路由到route文件夹下的index函数。我们再看index函数:res.render(‘index‘, { title: ‘Express‘ });功能是调用模板引擎,并传入一个参数Express。模板文件是view文件夹下面的index.jade,里面的一句话:h1= title p Welcome to #{title}实现把传过来的参数Express包装进tittle里面,最终实现了最终结果的显示。
这是一个完整的请求、路由、响应的过程。
我们发现,在app.js文件里面和app.get(‘/’, route.index);相似的另外一条路由规则:app.get(‘/users‘, user.list);和上一条路由规则一样,我们可以知道,这条规则的意思就是说:我们访问localhost:3000/users的时候,浏览器会通过后台程序返回routes文件夹下面的user.list文件,然后返回给浏览器结果。果不其然,浏览器果然通过这个文件里面的:res.send("respond with a resource");返回了respond with a resource。
这样我们就完成了两条完整的请求和响应流程。
于是,我们就想创建一条真正属于自己的流程,从请求道响应到最后展示在浏览器的页面上,都是自己的东西。
好吧,按照书里面的,我们开始创建一个只是显示时间的页面,我们是这样设想的:当我们在浏览器里面输入localhost:3000/hello并敲击回车的时候,浏览器返回给我们的是当前的时间。
于是开始动手。
首先,我们子啊app.js里面新增
app.get(‘/hello’,routes.hello);
然后再routes文件夹下面的index.js文件下新增hello函数:
1 exports.hello=function(req,res){ 2 3 res.send(‘the time is’ +new Date().toString()); 4 5 };
最后完成测试。
返回:
the time is Wed Sep 10 2014 14:05:34 GMT+0800 (中国标准时间)