当前位置: 首页 > 科技观察

使用Nodejs实现Helloworld

时间:2023-03-21 23:41:32 科技观察

的Http服务版大家好,我是前端西瓜哥。今天我们来学习nodejs,用nodejs写一个简单的http服务版的“helloworld”。对于http.createServer我们需要使用nodejs的http模块。http模块包含一些与http相关的方法。我们需要用到http.createServer方法,这个方法用来创建一个http服务,并返回http.Server实例对象。http.createServer方法接受两个参数:一个配置对象options,可选。比如可以配置请求超时requestTimeout。监听请求函数,可选。当收到一个请求时,我们可以通过这个函数得到请求对象req和响应对象res。req是http.IncomingMessage的实例对象,res是http.ServerResponse的实例对象,http.ServerResponse继承自http.OutgoingMessage类。然后返回一个http.Server实例对象,http.Server继承自net.Server。http模块涉及的类比较多,需要区分一下。consthttp=require('http');constserver=http.createServer((req,res)=>{//...})对于req请求对象,我们可以得到请求内容,例如:req.headers:Requestheaderfieldsinobjectform(key将转换为小写)。req.method:请求方法,如“Get”。对于res响应对象,我们可以用它来设置响应信息,比如:res.writeHead:writeHead方法用来设置状态码(比如200),状态信息(比如“OK”),以及响应标头字段。主要需要注意的是有些header字段是nodejs自己添加的,比如date。res.setHeader:设置单个响应头字段,但必须在res.writeHead之前执行。res.getHeaders:返回最终设置的响应头对象,可用于调试。res.write:设置响应体内容和编码类型。可以多次调用,最后会收到新的内容。res.end:该方法表示已经设置了响应头和请求体,将发送响应。必须调用此方法。可以传入content参数来设置responsebody,相当于把res.write的工作又做了一遍。然后就是http.createServer返回的http.Server实例对象。用来控制这个具体的http服务,例如:server.close:这个方法可以关闭当前的http服务。具体来说,先不接受新的请求,然后处理完请求才真正关闭,触发close事件。server.listen:监听连接请求,常见的用法是指定一个端口号。你好世界!现在让我们实现一个将返回HelloWorld!的http服务。consthttp=require('http');http.createServer((req,res)=>{res.writeHead(200,{'Content-Type':'text/plain'});res.end('HelloWorld!\n');}).听(3200);很简单。我们首先使用http.createServer创建一个http服务。传入一个request函数,当请求发生时会得到res响应对象,然后使用res.writeHead设置状态码200和必要的header字段。我们返回的数据是纯文本,因此将Content-Type设置为'text/plain'。这个需要根据自己的需要选择MIME,比如text/html为HTML。然后用res.end表示设置完成,带上'HelloWorld!\n'作为请求体。最后我们对http.createServer方法返回的对象执行listen方法监听3200端口,然后访问http://localhost:3200/,可以看到HelloWorld!。最后,Nodejs提供了http模块,可以让我们更方便的创建http服务,但是因为涉及到的类和API比较多,所以实际上更多的是使用封装好的web框架,比如Express,Nestjs。