nodejs服务器

工作流程

提出需求->设计接口约定数据->前后端并行开发->前后端集成->前端调整页面->集成成功->交互

const http = require("http");
const server = http.createServer((req,res,next)=>{
    res.writeHead(200,{
        "Content-Type":"text/html;charset=utf-8"
    });
    res.write("hello world");
    res.end();
})

nodejs中的js与浏览器中的js的区别

浏览器js:ECMAScript核心 + DOM + BOM
node中js:ECMAScript核心 + 全局成员 + 模块系统(系统模块、第三方模块、自定义模块)
全局成员:setTimeout,setInterval,console.log()等
注意:这几个名称和功能虽然与浏览器中一样,但是是nodejs自己实现的,与浏览器无关

nodejs系统模块

fs,http,url,path等
一个模块中包含了很多方法和属性,可以帮助我们实现不同的功能

node搭建web服务器

创建一个js文件,使用http模块搭建web服务器
引入http模块

const http = require("http");

创建服务器对象

const server = http.createServer();

开启服务器

server.listen(3000,()=>{
	console.log("server is running...")
})

监听浏览器请求并进行处理

server.on("request",(req,res)=>{
	res.end("Hello Nodejs")
	//end方法能够将数据返回给浏览器,浏览器会显示该字符串
})

*on:该方法用来监听事件**
参数1(此处的request):事件类型,request代表浏览器请求事件
参数2:回调函数。当监听到浏览器请求后发出的回调函数,该函数中有两个参数
	第一个参数(此处req):请求对象
	第二个参数(此处res):响应对象
end方法能够将数据返回给浏览器,浏览器会显示该字符串

显示页面
在js文件统计目录下创建html文件

此时服务器js文件需要另一个模块:文件读取模块—>readfile
引入fs模块

const fs = require("fs")

调用readfile方法读取文件内容

fs.readFile("./**.html","utf-8",(err,data) => {
	if(err){
		return console.log(err);
	}
	console.log(data)
})

参数1:要读取的文件路径,相对路径和绝对路径均可(推荐使用绝对路径)
参数2:设置字符集,常用的中文字符集有三种:utf-8,gb2312,gbk	
	该参数是可选参数,如果不设置该参数,读取内容默认是二进制数据
参数3:读取完成后触发的回调函数,该函数中有两个参数 err和data
err:错误对象-如果读取正确:err为null;
		如果读取失败:err为错误信息
data:文件中的数据

在console.log(data)处,便可以对文件内容的操作,data整个是以字符串类型被取出

创建服务器对象

const server = http.createServer();

开启服务器

server.listen(3000, () => {
    console.log('Server is running...');
});

监听浏览器请求并进行处理

server.on('request', (req, res) => {

   读取文件
    fs.readFile('./index.html', 'utf-8', (err, data) => {
        if (err) {
            return console.log(err);
        }
    //end方法返回读取的文件字符串,浏览器会显示该文件内容
    res.end(data);
})

注:用node启动服务器

tips:中文乱码问题
fs的readfile函数中第二个参数不可写,但是会造成页面中文乱码,另一个解决办法是,使用res(响应对象)中的setHeader方法:

res.setHeader("content-type","text/html;charset=utf-8")
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值