大家都应该听说过API(应用程序接口)它就是帮助咱们连接前端和后端滴神器。有了 API,我们不仅可以拿到数据,甚至还能操纵数据库!在Node.js里面,利用API做请求,咱们还可以实现许多强大的功能。下面我就教大家如何用Node.js去请求API接口,这样咱们就能更轻松地实现前后端之间的信息交流啦~
Node.js简介
你知道吗?Node.js就是个让JavaScript跑在各种设备上都能用的运行环境,还是开源的!所以说,你现在也能把JavaScript用到后台开发上去,不再只是停留在前端开发。现在,Node.js已经成为了Web开发里的牛人,它既方便又轻巧,因此越来越多的人都愿意在服务器那边用上它。
Node.js牛在哪?就在于它能先把事情做好,后面的事情还没完也不怕,直接继续干别的活儿!还有,Node.js有个大家族,啥都有,特别方便我们程序员。
API接口的重要性
你知不知道呀?现在做网页多靠API接口这个好帮手连接前后台!它能随时随地帮咱们传消息跟数据。多种多样,像什么RESTful API和GraphQL API之类的。有了Node.js,只要给它们发个请求,瞬间就能拿到我们想要的料儿去玩儿我们想干的事!
API接口挺棒哒,可加功能随意扩充,随意增定制查都超方便!祝你在实践中发现更多用法,不怕特殊操作;另外这玩意儿还能稳固提高系统的质量与可测试度哩!
安装请求库
想调用Node.js的API,你得先下个叫Request的库!就像现在这样简单,俩条命令搞定:
bash npm install request
搞定你这下可以靠request这个小工具在Node.js项目上搞定下单API的事了。别小瞧它,虽然个头不大,但功能强悍得很,有了它,发HTTP请求一下子就简单得多了~
获取API数据
小伙伴们,来看看怎么用Node.js在OpenWeatherMap API查询天气。首先得去官网上注册个账号,再搞到个API key才行
首先,找一个叫getWeather.js的文件,往里面添加这么些代码哈:
“`javascript
咱们要用这个叫request的东西,这玩意儿在Node.js里面超好用。
索性就用那个叫作’YOUR_API_KEY’的API密码。
const city = ‘London’;
哈喽,让我们直接上手!比如说,首先在网址里面加进去你想查询的城市名和API密钥:http://api.openweathermap.org/data/2.5/weather?q=北京&appid=XXXXX。
帮个忙(简而言之就是求助)查下这个地址,之后4样东西给你看:错误啦、回应啊、内容文本喽。期待你们的宝贵意见~
if (error) {
console.log(‘Error:’, error);
} else {
console.log(‘Body:’, body);
}
});
运行这段代码,你马上就能知道你家附近现在的天气!和点外卖差不多,首先加载 request 库,绑定好 API key 和你想查询的地点。接着,把这个地址发回给 OpenWeatherMap API 网站,立马就能拿到最新天气消息咯~
npm install request
解析API数据
接着,我教你咋儿读懂API给咱回复的那些消息,然后你得先把那个getWeather.js里面的内容给调换改动一下哈。
我们就简简单单搞定这部分代码,先解锁JSON来解析body,最后再把这个结果塞进weather里边儿。
小伙伴们注意,有个重大消息!今天天儿实在太热了,竟达到了{weather.main.temp}度!猜猜发生在哪,就是那个特别有活力的{weather.name}!
console.log(message);
在终端中运行以下命令:
node getWeather.js
好嘞!现在就能瞧见你那儿的天气,还有城市名儿。收到以后我就立马处理这些信息,再把有用的通知发给你哈~
处理API错误
网上冲浪总会碰到显示“403”或“500”的小麻烦,其实它们就好比向你宣告某地方出了错。这时就要带着这些小暗示找出症结所在。使用API时亦是如此,各种error code或error message也要靠这些线索来解决。
else if (响应状态码不等于200),那就
好了,看这个—— “状态码:”+response.statusCode 咱们就能知道返回的是啥了。
直接在那个窗口敲下这段代码就可以。如果API有啥毛病,到时候会告诉你是咋回事的,是什么错误或状态码。
使用Promise和Async/Await
你想让代码看起来既清晰又直观?那就让我们用 Promise 和 Async/AWAIT 来实现吧!这就是那个叫做”getWeather”函数的特色。
这叫“一次过”法:先约定好成败的做法(成功了就搞定,失败了就一拍两散),然后再开始干活儿。
点这儿呗,网页会告诉你是啥情况的(有错还是成功啦)。
if (error) {
reject(error);
如果状态码不是200,就这么做…
不好意思,服务器给我们发来了一条${response.statusCode}这个状态码的错信息。
} else {
resolve(JSON.parse(body));
}
});
var request = require('request'); var apiKey = 'YOUR_API_KEY'; // 将YOUR_API_KEY替换为你在OpenWeatherMap网站上获取的API key var city = 'London'; // 城市名 request(`https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${apiKey}`, function (error, response, body) { if (!error && response.statusCode == 200) { console.log(body); } });
});
}
async function main() {
try {
咱这儿天气乱得很,我就跑去查查天气状况,就是在那个getWeather那儿搞定的。
} catch (error) {
main();
你敲代码,电脑就给你发个实时的天气信息!开始时我们定义了个getWeather函数,能给个确切回复。然后在主程序中利用这神奇的Async/AWAIT来向API提出要求。如果成功了,就从接到的JSON文件中找到咱们要的——天气情况。没成功的话,程序会诚实地告诉你哪里出错。
使用Axios库
试试Axios库,这可是另一种好用的HTTP客户端库,跟Request库一样,它也基于Promise模式。用着超顺手!
首先,在终端中输入以下命令安装Axios库:
npm install axios
现在,就去把getWeather.js的内容给改过来呗,改成下面这个样子就对了嘛:
我们要用这个叫axios的工具来连接网络。
async function getWeather() {
咱们就直接用axios去戳那个网站,结果就在response那个地方。
天气数据就在’response.data’里!
getWeather();
首先,我们要用到Axios这个小助手。然后,别忘了准备好你的API密钥和你要查询的城市名称~接下来,就是让Axios向OpenWeatherMap的API发出HTTP请求~搞定!
使用Express框架
平常编程的时候,用Express这种轻巧又方便的Node.js网页应用建站神器,分分钟搞定网页应用!
var request = require('request'); var apiKey = 'YOUR_API_KEY'; // 将YOUR_API_KEY替换为你在OpenWeatherMap网站上获取的API key var city = 'London'; // 城市名 request(`https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${apiKey}&units=metric`, function (error, response, body) { if (!error && response.statusCode == 200) { var data = JSON.parse(body); console.log('城市:', data.name); console.log('温度:', data.main.temp, '度'); console.log('湿度:', data.main.humidity, '%'); console.log('天气:', data.weather[0].description); } });
首先,在终端中输入以下命令安装Express框架:
npm install express
接下来,咱们要新建一个名叫app.js的文件,这里面就这几行代码你们看一哈子哈:
我们需要用到Express这个库,就把它先导入进来。
const app = express();
咱们这个App里的天气预报是在’/’weather那个地方搞定的。有人点进去的话,程序就会发出个信号来找我们,然后再用之前教过你们的方法(req, res)搞定回复。
const city = req.query.city;
我们用了这个网站:https://www.openweathermap.org/data/2.5/weather?q=你要查的城市&appid=你的API密钥,这能告诉你实际上在做什么的城市天气。
上网请求完 URL 后,得到三样:出错提示 error,服务器答复 response 以及网页内容 body。接下来的处理得靠它们了。
node getWeather.js
if (error) {
res.send(‘Error:’, error);
else if (状态不是200,那就……)
我们会告诉你状态码是多少,响应的状态码就告诉你。
} else {
直接把天气的JSON数据解析一下。
“看看天气预报,网上就查得到。像今天,北京气温是25摄氏度,天气预报说是个好天气!”
res.send(message);
}
app.listen(3000, () => {
您瞅,我这哥们儿在默认的3000端口上跑得挺欢。
node app.js
你只需要打开浏览器,输入`http://localhost:3000/weather?city=London`,看看伦敦的天气!这个小程序已经安装好了Express框架和request库。API key也搞定了,现在整个就变成了一款Express应用。它就在3000门后等着你的请求,然后提供一条叫作/weather的查天气通道。
总结
好!我们学会了怎么用Node.js找API接口,还能把手头拿到的数据解析出来!用了两个好用的库——Request和Axios,用来发出HTTP请求;还有 Promise 和 Async/Await 来处理这些请求。更牛的是,咱们还能利用 Express 框架做个简单的 Web 应用!
这些小妙招能帮助咱们搞定前端和后端的信息通信,让网页设计变得无比神奇。希望本篇小文能对你有所启发哟~快来留言咨询或者发表意见。别忘了点个赞和分享哈。
提问
最近你们在使用Node.js和API搭建服务器的时候,都遇到了哪些难题?有成功解决的吗?来分享下经验呗!
评论0