最近也在学习node.js,所以特来分享,<a href="https://expressjs.com/">Express</a>是当前非常流行的一个node web框架。利用这个框架,我们可以非常方便的建立一个web站点。好吧,那接下来看看怎么使用这个框架把,gogogo~~~
先让我们开始了解一下 express。首先下载 express:
npm install express --save。
如果电脑被墙了话可以用国内的淘宝镜像 :
npm install -g cnpm --registry=https://registry.npm.taobao.org
然后就用cnpm代替npm命令了,速度可想而知很快的。
然后创建server.js,输入以下代码:
var express = require('express');var app = express(); app.get('/', function(req, res){ res.send('hello world'); }); app.listen(1337);console.log('Server running at http://127.0.0.1:1222/');
这样,我们就可以访问 http://127.0.0.1:1337
除了url路由外,整个web服务实际上涉及到了很多很多的内容,让我们简单的整理一下可能会涉及到的内容:
url路由,url参数读取,以及表单读取
对于不同http方法(GET、POST、PUT)的分发
自动填写HTTP头,例如Content-Type
cookie、session的管理
用户管理,包括用户名判重、密码加密和保持登陆
模板渲染,将动态的脚本渲染成浏览器可识别的HTML
静态文件服务
用户上传文件
国际化,创建语言无关的站点
MVC支持(良好的代码结构可极大的提高代码的可读性和可维护性)
现在来新建一个express项目
1.先安装这个东西
npm install express-generator -g
2.建立一个名叫base的Express项目,并进入这个目录:
express base
cd base
3.运行npm install安装依赖
4.通过node ./bin/www来运行我们的项目
5.用浏览器即可打开我们的应用: http://localhost:3000 。
现在让我们来看一下目录结构:
目录结构图
app.js中定义并导出了整个应用;
/bin/www导入并执行了app.js中定义的应用,它是一个入口;
node_modules则是我们npm install安装的依赖所在目录;
package.json定义了我们的应用,应用也是一个npm包,有着一系列的依赖;
public下存放的是静态文件,这些文件一旦客户端请求,我们会原样地返回(例如客户端javascript、css);
routes则是项目最核心的部分,它拿到HTTP请求并返回HTTP响应。它最终被app.js引入;
views则是视图模板,就是HTML的模板,用来产生动态页面。至于什么是模板,现在可以不去管它。
现在,在app.js中app.use('',...)之前,加入一个控制器:
app.get('/hello', function(req, res, next){ res.send('Hello, Express!'); });
然后重启服务器,访问 http://localhost:3000/hello 。之后,我们可以看到一行文字:
Hello, Express!
例如,我们网站的一部分逻辑是账户的功能:登录、注册、找回密码等。这些页面可以分为一组,作为单独的Router引入到app.js中。这个Router不妨命名为account.js:
这个account.js在之前目录图片出现过
// file: routes/account.jsvar express = require('express');var router = express.Router(); router.get('/login', function(req, res){ return res.send('这里将会是登陆页面'); }); router.get('/register', function(req, res){ return res.send('这里将会是注册页面'); });// 其他的账户控制器module.exports = router;
最后,在app.js中引用该Router:
app.use("/account", require('./routes/account'));
重启服务器,访问 http://localhost:3000/account/login 与 http://localhost:3000/account/register
访问第一个地址可以看到页面会出现:
这里将会是登陆页面
访问第二个地址可以看到页面会出现:
这里将会是注册页面
介绍到这里,一个简单地Express框架就简单入门了
如果是mac用户提示没有权限可以在命令前面加入sudo,或者速度比较慢比如:
sudo npm install express --save
作者:波波杨某某
链接:https://www.jianshu.com/p/ff485588d135