Node.js 表单提交&静态资源服务器

本文介绍如何使用Node.js创建一个简单的HTTP服务器,处理GET请求,解析URL查询参数,并响应静态文件。涵盖创建服务器、处理客户端请求、设置响应头、解析URL参数及发送静态文件等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

var http = require("http");
var url = require("url");
var server = http.createServer(function(req,res){
    //得到查询部分,由于参数是true,得到的query是一个对象
    var queryObj = url.parse(req.url,true).query;
    var name = queryObj.name;
    var sex = queryObj.sex;
    var age = queryObj.age;
    res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});  
    res.end("服务器收到了表单请求"+"<br>"+name +sex+age);
});
server.listen(8080,"127.0.0.1");
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <form action="http://127.0.0.1:8080/" method="get">
        姓名:<input type="text" name="name"><br>
        年纪:<input type="text" name="age"><br>
        <input type="radio" name="sex" value="男">男
        <input type="radio" name="sex" value="女">女
        <input type="submit" value="提交">
    </form> 
</body>
</html>

node form.js,然后浏览器运行form.html,输入姓名,年纪,选择性别,提交表单,结果如下:

 

安装一个小型服务器,因为只有服务器环境才能发出Ajax请求

$ cnpm install serve-static --save

$ cnpm install finalhandler --save

防止乱码,加:res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});     //状态码+响应头属性

url.parse方法:将一个URL字符串转换成对象并返回

var params = url.parse(req.url, true).query;  //parse将字符串转成对象,req.url="/?url=123&name=321",true表示params是{url:"123",name:"321"},false表示params是url=123&name=321 

var url = require('url');
var a = url.parse('http://example.com:8080/one?a=index&t=article&m=default');
console.log(a);
 
//输出结果:
{ 
    protocol : 'http' ,
    auth : null ,
    host : 'example.com:8080' ,
    port : '8080' ,
    hostname : 'example.com' ,
    hash : null ,
    search : '?a=index&t=article&m=default',
    query : 'a=index&t=article&m=default',
    pathname : '/one',
    path : '/one?a=index&t=article&m=default',
    href : 'http://example.com:8080/one?a=index&t=article&m=default'
}

我们的目标是实现一个可访问静态文件的服务器,即可以在浏览器访问文件夹和文件,通过点击来查看文件

静态资源文件一般放在所有的路由表之后。

下面展示获得真实文件夹publi中的1.png:

 

//当我们访问/时,想要呈递一个hh.html页面
var express=require("express")
var app=express()

app.get("/",function(req,res){
	res.set('Content-Type', 'text/html; charset=utf-8'); 
	res.sendFile(__dirname+"/public/hh.html")
})

res常用函数是send和sendFile。sendFile表示发送一个页面给用户,必须使用绝对路径当作参数。

需针对不同类型的文件设置不同的content-type,新建一个文件mime.js,导出部分类型。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值