h5Web前端之路

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:判断请求是否还「新鲜」

上一篇 下一篇

猜你喜欢

热点阅读