开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第11天,点击查看活动详情
前言
之前写过一篇文章《Node.js实现简单爬虫小案例》 ,爬取了豆瓣读书的一些图书数据,现在根据这些数据做一个接口,实现可以在网页上请求该接口,返回这些图书数据。
实现步骤
因为之前做爬虫案例,已经创建了项目,并安装了一些依赖(ps: 具体的内容可以点击上面前言中的文章查看)。写接口就直接在这个项目中实现,只需要新建一个js文件serve.js,在这个js文件中写实现接口相关代码。
1.首先需要引入express框架,搭建基本的node服务,在终端运行node server.js命令,测试get请求
const express = require('express')
const app = express()
const port = 8080
app.listen(port, ()=> {
console.log('server start listening on: http://localhost:%s', port)
})
app.get('/', (req, res) => {
res.send('<h1>hello world</h1>')
})
res.json 以json对象的形式返回
res.send 以页面(html)的形式返回
res.download 以文件的方式返回,前端请求会下载此文件
为了每次改动代码,不需要在终端重新输入命令运行程序,可以在package.json文件中定义热更新启动命令
-
首先需要全局安装插件
hotnode(实现node程序热更新)npm i hotnode -g -
package.json文件定义脚本命令(项目启动命令)
"start": "hotnode serve.js",
- 运行程序
npm start
会出现报错:TypeError: util.print is not a function
原因:unit 文档的util.print函数已经弃用
修改:找到报错的路径并点击进入该文件,修改util.print方法
this.process.stdout.on("data", function(data) {
// return util.print(data.toString());
return console.log(data.toString)
});
成功运行,每次修改文件后保存,就能自动发布
2. 编写GET接口
const express = require('express')
const app = express()
const port = 8080
//引入图书数据
const books = require('./books.json')
app.get('/api/books',(req, res) => {
res.json({
status: 200,
messsage: 'success',
data: books
})
})
app.listen(port, ()=> {
console.log('服务启动')
})
运行成功后,打开浏览器输入链接查看是否返回数据
这样就简单实现了一个get请求来获取到数据。但是数据是假的,还没有连接数据库,也没有处理接口跨域问题,总之这篇文章就是编写接口的一个简单初体验的学习记录,后面还有许多需要学习的。