第一步
先初始化然后安装依赖,我要用到axios处理异步请求,所以要安装axios
//初始化项目
npm init
//安装axios
npm install -g http-sever
npm install -save axios
建议大家如果不能科学冲浪,把国内npm源换成淘宝源或者使用yarn.(而且科学冲浪还得开全局,开了全局还会卡,安装缓慢,卡到一半出问题,说多了都是泪,因此建议直接更换源)
//直接换
npm config set registry https://registry.npm.taobao.org
//查询当前源
npm config get registry
//还原回来
npm config set registry https://registry.npmjs.org/
第二步
按照axios的文档来,自己写个模块并导出
- 返回一个new Promise对象,当我使用这个导出来的方法,
- 使用方法时直接使用then()和catch()就可以为所欲为对面的数据做出控制
const axios = require('axios')
function getWeather(city){
return new Promise((resolve,reject)=>{
axios.get(`自己去找个免费的天气api=${encodeURI(city)}`)
.then( response => {
resolve(response.data)
})
.catch(e=>{reject('网络异常')})
})
}
module.exports = getWeather
测试一下:
新建个test.js
const getWeather = require('./index')
getWeather('北京')
.then(data => console.log(data))
.catch(e=> console.log(e))
node test.js
成功!
最后的最后
发布到npm上
npm publish
好了现在只需要在你的项目环境下
npm install sunnyday
在你的文件中引入sunnyday模块,然后再函数中输入对应的城市名,即可得到天气
下面是我的天气模块发布成功的链接
https://www.npmjs.com/package/sunnyday