emmmmmmm...
我写是为了记录自己状态的..就这样
express先就是会使用npm命令装吧,npm init /npm install package_name -save 之类的
然后package.json文件呢会有所有包的配置信息,上传的时候就不需要把包上传了,只要有package.json就可以了,再npm install就好了。
建立js文件 首先要var x = require('package_name'),也可以是自己封装的包。
然后运行是用cmd node app.js,最好有个consloe,判断端口是否可用。
启动脚本index.js的app.get方法,用于指定不同的访问路径所对应的回调函数,这叫做“路由”(routing)//但是其实不是很能理解router jerry叫理解成为一个地方到另一个地方的行为。
但是不是类似于一下这种就能当做一个路由?
app.get('/customer',function(req,res){
res.send('customer page');
});
然后可以把router封装起来,用的时候就是
varroutes=require('./routes')(app);
啊啊,突然懂了
Express框架的核心是对http模块的再包装:
之前用node.js写
var http = require("http");
var app = http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.end("Hello world!");
});
app.listen(3000, "localhost");
express再改写就是:
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello world!');
});
app.listen(3000);
中间件这个东西一开始有点接受无能,我现在的理解就是一个传递参数的函数。
function uselessMiddleware(req, res, next) {
next();
}
//一点点小方法
1.use方法就是注册中间件的方法。
2.all 方法感觉有点像执行以下每一步之前都必须执行的步骤?类似于全局那种感觉?
3.模式匹配 emmmm 大概是用来过滤的吧,以后用到再说
4.set就简单多啦,感觉就是直接设置变量。
5.response.redirect:网址重定向
6.response.sendFile:发送文件
7.response.render:渲染网页模板
写一个小例子:
var express = require('express');
var app = express();
上面代码首先加载express模块,赋给变量express。然后,生成express实例,赋给变量app。
接着,设定express实例的参数。
// 设定port变量,意为访问端口
app.set('port', process.env.PORT || 3000);//jerry说了 这个是避免占用的意思
// 设定views变量,意为视图存放的目录
app.set('views', path.join(__dirname, 'views'));
// 设定view engine变量,意为网页模板引擎
app.set('view engine', 'jade');
app.get('/', function(req, res) {
res.send('Hello World');
});
// 设定静态文件目录,比如本地文件
// 目录为demo/public/images,访问
// 网址则显示为http://localhost:3000/images
app.use(express.static(path.join(__dirname, 'public')));
上面代码中的set方法用于设定内部变量,use方法用于调用express的中间件。
最后,调用实例方法listen,让其监听事先设定的端口(3000)。
app.listen(app.get('port'));
静态网页模板:一般放在views目录下,send变成sendfiles('path');
动态网页模板:需要引用模板引擎,其实我不是很会(大概就是要配置引擎,运行引擎,再渲染一下吧)
新建数据脚本:渲染是指将数据代入模板的过程,像这种需要加载的,都是需要exports的//还有那个网页重新布局那里没有看懂 明天问问seven
静态文件目录:app.use(express.static('public'));
router用法我真是...默默查api好啦
后面还有个上传文件也是不会...明天还是要问seven...