html 参数传递-Node.js中两种参数传递方法解读

目录

参数传递方式

在 Node.js 中,参数传递有两种常见的形式:

获取方法

GET方法一般在请求地址中以[?参数1=值1&参数2=值2]的格式传递。 在Node.js中html 参数传递,获取url后即可获取参数,如下:

html 参数传递_传递参数不正确是什么意思_传递参数的三种方式

//1.引入http模块
var http  = require("http");
//2.创建服务
var server = http.createServer();
//3. 监听请求事件,当有请求时,触发回调函数
server.on("request",function(req,res){
    res.writeHead(200,{"content-type":"text/html;charset=utf-8"});
    var url = req.url;
    if(url.indexOf("?")>0){
        params = url.split("?")[1];
        paramArray = params.split("&");
        res.write("

请求的参数为:

"); for(var index in paramArray){ res.write(paramArray[index]) res.write("
"); } } res.end(); }); //4. 监听8080端口 server.listen(8080,function(){ console.log("server is running"); });

运行示例并在浏览器中打开它,如下所示

邮寄方式

目前POST数据通常以form表单的形式进行传输。 在 Node.js 中,POST 传递的数据位于请求正文中。

首先创建一个reg.html静态html页面,然后将数据提交到action.html,如下:

//1.引入http模块
var http  = require("http");
var fs = require("fs");
var path = require("path");
//2.创建服务
var server = http.createServer();
var extnames = {".html":"text/html",".css":"text/css",".png":"image/png"};
//3. 监听请求事件,当有请求时,触发回调函数
server.on("request",function(req,res){
    var url=req.url;
    if(url==="/"){
        url="/index.html";
    }
    var localPath = "./www"+url;
    var extname = path.extname(localPath);
    res.writeHead(200,{"content-type":""+extnames[extname]+";charset=utf-8"});
    if(url==="/action.html"){
        //从请求主体中获取POST方式传输的数据
        var params="";
        req.on("data",function(data){
            params += data.toString();
        });
        //监听结束事件
        req.on("end",function(){
            res.write("

后台已经收到请求:

"); res.write(params); res.end(); }); return; } console.log(localPath); if(extname===".ico"){ res.end(); }else{ fs.readFile(localPath,function(err,data){ res.write(data); res.end(); }); } }); //4. 监听8080端口 server.listen(8080,function(){ console.log("server is running"); });

运行服务,然后在浏览器中输入URL,如下图:

传递参数不正确是什么意思_html 参数传递_传递参数的三种方式

注意:可以看出,GET方法和POST方法的参数结构是一样的,只不过GET传递的是URL,POST传递的是请求体。

动态网页

在前面的例子中html 参数传递,所有的html页面都是静态页面,不会随着用户请求而改变。 那么如何动态改变网页呢? 答案是使用模板。

传递参数不正确是什么意思_html 参数传递_传递参数的三种方式

首先创建一个html页面,并在页面中定义一个变量。 如下:


    
        
        这是首页
        
    
    
        

这是首页

你的访问IP为:

然后在Node.js前端程序中,动态获取变量的值并替换,如下:

var http  = require("http");
var fs = require("fs");
var path = require("path");
//2.创建服务
var server = http.createServer();
var extnames = {".html":"text/html",".css":"text/css",".png":"image/png"};
//3. 监听请求事件,当有请求时,触发回调函数
server.on("request",function(req,res){
    var url=req.url;
    if(url==="/"){
        url="/index.html";
    }
    var localPath = "./www"+url;
    var extname = path.extname(localPath);
    res.writeHead(200,{"content-type":""+extnames[extname]+";charset=utf-8"});
    console.log(localPath);
    if(extname===".ico"){
        res.end();
    }else{
        fs.readFile(localPath,function(err,data){
            var ip = req.socket.remoteAddress;
            var content  = render(data.toString(),"",ip);
            res.write(content);
            res.end();
        });
    }
});
//4. 监听8080端口
server.listen(8080,function(){
    console.log("server is running");
});
function render(html,name,value){
    return html.replace(name,value);
}

传递参数不正确是什么意思_传递参数的三种方式_html 参数传递

运行该示例,在浏览器中输入://127.0.0.1:8080/,如下所示:

注:IP为客户端IP,会随着接入的客户端电脑的不同而变化。

上面的例子都是Node.js原生的开发方式,有很多不方便的地方。 我们将引入框架来提高开发效率。

至此,这篇关于Node.js中两种参数传递方法的解读就介绍到这里了。 更多关于Node.js中参数传递的形式,请搜索云海天教程之前的文章或者继续浏览下面的相关文章。 希望大家以后多多支持云海天教程!