当前位置: 首页 > 后端技术 > Node.js

使用Node.js写一个简单的api接口

时间:2023-04-04 01:15:26 Node.js

importHttp模块默认你已经安装了Node.jsNode有一个内置的Http模块;你可以使用varhttp=require("http");导入http模块;Helloworld使用Node.js很简单的实现了一个HTTP服务器程序。我们实现最简单的web程序,返回Helloworld!对于所有请求,创建一个新文件夹apiDemo并在其中创建一个新的server.js://importhttpmodule:varhttp=require('http');//创建一个httpserver并传入回调函数:varserver=http.createServer(function(request,response){//回调函数接收request和response对象,//获取HTTP请求的方法和url:console.log(request.method+':'+request.url);//将HTTP响应200写入response,并设置Content-Type:text/html:response.writeHead(200,{'Content-Type':'text/html'});//写入HTML内容HTTP响应response:response.end('Helloworld!');});//让服务器监听8080端口:server.listen(8080);console.log('Serverisrunningathttp://127.0.0.1:8080/');然后在当前目录的命令提示符(cmd等)下运行,输入:nodeserver.js然后打开浏览器输入:http://127.0.js0.1:8080/可以看到:同时在命令行可以看到打印的信息:GET:/GET:/favicon.ico主要要理解的是:http.createServer(function(request,response){})它的作用是创建一个http服务,它传递一个回调函数,回调函数包含两个参数(request,response)。其中request是请求对象,response是响应对象。可以根据请求对象获取请求头的一些信息,如:request.url--响应成功后返回请求路径:response.writeHead()————向请求response发送一个响应头.end('xxx')——————响应成功返回xxx。参考Nodez中文网-HTTP路由我们想在访问http://127.0.0.1:8080/时返回当前目录的index.html。也就是说当request.url==='/'为真时,可以确定当前请求是根目录,varurl=request.url;console.log(url);//'/'我们可以创建一个服务,并且可以使用response.end('Helloworld!');返回“Helloworld!”。如果要返回一个文件,需要用到Node.js的一个模块——fs文件系统。是Node中处理文件的模块,首先引入:varfs=require('fs');你可以使用fs.readFile()来读取文件fs.readFile('./index.html',function(err,data){if(err)throwerr;console.log(data);//});回调函数有两个参数(err,data),其中data是文件的内容,以二进制形式返回。然后我们就可以写代码了,访问根目录时,返回index.html文件varhttp=require('http');varfs=require('fs');varserver=http.createServer(function(request,response){varurl=request.url;if(url==='/'){fs.readFile('./index.html',function(err,data){if(!err){response.writeHead(200,{"Content-Type":"text/html;charset=UTF-8"});response.end(data)}else{throwerr;}});}else{console.log("Error");}});server.listen(8080,'127.0.0.1');然后在当前目录新建一个index.html,我们可以在里面写ajax请求,我们点击按钮实现ajax请求一组数据:我看不到

我是按钮这段代码是在点击按钮的时候,会向/data发送一个ajsx请求,实现一个简单的API接口。由于可以访问根目录就可以返回html文件,所以我们可以自己设置一个url。当请求url时,我们会返回一组json数据给它。通常,应该从数据库中读取这些数据。这里只模拟了一组json数据,在当前目录下新建了一个data.json:{"name":"Nicoladin*赵四"}所以当前目录结构是:然后我们在server.json中判断。js,当请求的url为/data时,返回data.json:if(url==='/data'){fs.readFile('./data.json',function(err,data){if(!err){response.writeHead(200,{"Content-Type":"application/json"});response.end(data);}else{throwerr;}})}然后打开浏览器http://127.0.0.1:8080,会出现index.html页面,点击按钮会触发ajax请求到/data,当server.js收到请求后,会判断url==='/data',然后将data.json返回给我们。最终实现是点击按钮出现Nicoladin*赵四,GItHub源码:node-apiDemo参考:廖雪峰-httpNode-fs详解