node.js中路由,中间件,ge请求和post请求的参数详(3)
4、render和send
4.1、res.send()方法快速测试页
var express=require("express"); var app=express(); //静态服务 app.use('/jingtai',express.static("./public")); //新的路由 app.get('/images',function (req,res) { res.send("哈哈") }); //会自动识别err参数,如果有,那么就这个函数能捕获err app.use(function (req,res) { res.status(404).send("没有这个页面!"); }) app.listen(3000);
4.2、res.render()渲染内容,将会根据views中的模板文件进行渲染。如果不想使用views文件夹,想自己设置文件夹名字,那么app.set("views","aaaa");
var express=require("express"); var app=express(); // //设置ejs文件夹名字 //在day3文件夹下新建文件夹a,然后在里面放ejs文件 // app.set("views","a") app.set("view engine","ejs"); app.get("/",function(req,res) { res.render("haha",{news:[]}); }); app.get("/check",function (req,res) { res.send({ "user":"ok" }) }) app.listen(3000);
5、req.query:当输入http://127.0.0.1:3000/?id=0&ag=9
var express=require("express"); var app=express(); app.get("/",function (req,res) { console.log(req.query); res.send(); }); app.listen(3000);
运行结果:
三、get请求参数post请求参数:
GET请求的参数:在URL中,在Express中,不需要使用url模块了。可以直接使用req.query对象。
POST请求参数:在express中不能直接获得,必须使用body-parser模块。使用后,将可以用req.body得到参数。但是如果表单中含有文件上传,那么还是需要使用formidable模块。
//form.ejs <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <form action="#" method="post"> <input type="text" name="name"/> <input type="text" name="age"/> <input type="submit"/> </form> </body> </html>
//.jsvar express=require("express"); var bodyParser=require('body-parser'); var app=express(); app.set('view engine','ejs') app.get('/',function (req,res) { res.render("form"); }); //bodyParser API app.use(bodyParser.urlencoded({extended:false})); app.post('/',function (req,res) { console.log(req.body); }); app.listen(3000);
运行结果: