node入门app1
2017-10-17 本文已影响6人
圆心角
app
1、使用npm init创建一个package.json文件,这个文件保存着这个项目相关信息
2、npm install express --save-dev
3、npm install body-parser --save-dev
//第三个一般不用 除非POST请求 安装上也不会有错
首先了解一些语句
//传送HTTP响应
res.send()
//传送指定路径的文件 -会自动根据文件extension设定Content-Type
res,sendFile(path [,options] [,fn])
Request 对象 - request 对象表示 HTTP 请求,包含了请求查询字符串,参数,内容,HTTP 头部等属性。常见属性有:
req.app:当callback为外部文件时,用req.app访问express的实例
req.baseUrl:获取路由当前安装的URL路径
req.body / req.cookies:获得「请求主体」/ Cookies
req.fresh / req.stale:判断请求是否还「新鲜」
req.hostname / req.ip:获取主机名和IP地址
req.originalUrl:获取原始请求URL
req.params:获取路由的parameters
req.path:获取请求路径
req.protocol:获取协议类型
req.query:获取URL的查询参数串
req.route:获取当前匹配的路由
req.subdomains:获取子域名
req.accepts():检查可接受的请求的文档类型
req.acceptsCharsets / req.acceptsEncodings / req.acceptsLanguages:返回指定字符集的第一个可接受字符编码
req.get():获取指定的HTTP请求头
req.is():判断请求头Content-Type的MIME类型
Response 对象 - response 对象表示 HTTP 响应,即在接收到请求时向客户端发送的 HTTP 响应数据。常见属性有:
res.app:同req.app一样
res.append():追加指定HTTP头
res.set()在res.append()后将重置之前设置的头
res.cookie(name,value [,option]):设置Cookie
opition: domain / expires / httpOnly / maxAge / path / secure / signed
res.clearCookie():清除Cookie
res.download():传送指定路径的文件
res.get():返回指定的HTTP头
res.json():传送JSON响应
res.jsonp():传送JSONP响应
res.location():只设置响应的Location HTTP头,不设置状态码或者close response
res.redirect():设置响应的Location HTTP头,并且设置状态码302
res.send():传送HTTP响应
res.sendFile(path [,options] [,fn]):传送指定路径的文件 -会自动根据文件extension设定Content-Type
res.set():设置HTTP头,传入object可以一次设置多个头
res.status():设置HTTP状态码
res.type():设置Content-Type的MIME类型
var express = require("express");
//用于post请求获取参数 一般是不用的
var bodyParser = require('body-parser');
// 创建 application/x-www-form-urlencoded 编码解析
var urlencodedParser = bodyParser.urlencoded({ extended: false });
//初始化
var app = express();
// 主页输出 "Hello World" - "/" 这里是请求的是任何文件类型都可以
app.get("/",function(rep,res){
res.send("Hello World");
});
app.listen('9090')
在当前文件夹下建立一个index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
</head>
<body>
<form action="/form" method="post">
账号:<input type="text" width="150px" name="username"/><br>
密码:<input type="text" width="150px" name="passwd"/><br>
<input type="submit" value="提交"><br>
</form>
</body>
</html>
// 让主页输出 "Hello World" - "/index"
// 谷歌浏览器输出localhost/index.html 或者 http://10.0.159,203:8123/index.html
app.get("/index.html",function(req,res){
// 请求的是当前文件夹下的index.html 和当前js在同一文件夹下
//__dirname代表当前服务器所在路径 a/b/c
// /a/b/c/index.html
res.sendFile(__dirname + "/index.html")
});
app.listen('9090') 运行时先把上面那个9090注释了
// 主页输出其他路径-"/article/:id/:name"
// http://10.0.159.192:8123/article/sunck/good
app.get("/article/:id/:name",function(req,res){
console.log(req.params); //获取的是前面的:
res.send(req.params.id + req.params.name);
});
// 对页面 abcd, abxcd, ab123cd, 等响应 GET 请求 - "/ab*cd"
app.get("/ab*cd",function(req,res){
res.send("RET");
});
//index.html页面发起GET请求
app.get("/form",function(req,res){
console.log(req.query);
var response = {
username:req.query.username,
passwd:req.query.passwd
};
res.send(JSON.stringify(response));
});
//index.html页面发起POST请求
app.post("/form",urlencodedParser,function(req,res){
console.log(req.body);
// post请求是请求体
var response = {
username:req.body.username,
passwd:req.body.passwd
};
res.send(JSON.stringify(response));
});
不要忘了在启动前端口号的设置和之前的注释
我们常用的就是下面的几个命令
res.send()
res.sendFile()
req.app
req.body
req.params
req.path
req.query
req.is()
req.fresh / req.stale:判断请求是否还「新鲜」