狗万官网酒店 > 狗万官网下载 > 布局node传感器并且链接微信公众号接口配置步骤详解_node.js

布局node传感器并且链接微信公众号接口配置步骤详解_node.js

来源: 2019-08-04 19:43 我来投稿 参与评论
这篇文章主要介绍了部署node传感器并且链接微信公众号接口配置步骤详解,文中通过示范代码介绍的独特详细,对大家的上学或者工作具有原则性的参考学习价值,,要求的爱人可以参考下

布局node传感器

在选购好服务器后,用Xshell链接到服务器。

1、安装nvm

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
或者
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash

安装完,关闭重新启动一下Xshell。

2、用nvm安装node

// 查阅当前可安装node本版
nvm ls-remote
// 分选'nodejs.org'官网LTS稳定版本
nvm install v10.16.0
// 出现这样的表现表示安装好了,默认的是v10.16.0的node本版,6.9.0的npm本版
Now using node v10.16.0 (npm v6.9.0)
Creating default alias: default -> v10.16.0
// 可以利用命令查看版本
node --version 
// nvm可以安装多个node本版
nvm install v10.11.0
// 可以利用命令查看安装了好多个node本版
nvm ls
// 可以利用命令指定默认的node本版,如果安装了多个node本版,定点要指定一个默认的本子
nvm alias default v10.11.0
// 如果你不想使用默认,只是京时用一下,可以利用命令
nvm use v10.11.0

3、安装nginx

// 查阅服务器系统版本
$ cat /etc/redhat-release 
// 安装epel-release 源
yum install epel-release -y
// 打开源配置
vim /etc/yum.repos.d/nginx.repo
// 在布局中设置nginx安装源,实际可以参考nginx官网文档('http://nginx.org/en/linux_packages.html#stable')
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
// 安装nginx
yum install nginx -y
// 查阅nginx是不是安装成功,成功之话会显示路径
whereis nginx

4、安装nginx

// 安装开机启动
systemctl enable nginx
// 开行服务,重启是'systemctl restart nginx',停止是 'stop'
systemctl start nginx
// 重新加载,因为一般重新部署之后,不愿意重启服务,此刻可以利用重新加载
systemctl reload nginx
// 查阅服务器状态
systemctl status nginx
// 如果CentOS7 系统打开了防火墙,还需打开防火墙端口
firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload
firewall-cmd --list-service
// 如果要运用反向代理,CentOS7 要求打开网络访问权限
setsebool httpd_can_network_connect 1

5、安排测试项目

// 创造文件夹
mkdir server
// 进去文件夹
cd server
// 创造js文件
vim home.js
// 编排测试代码,瞩目,此地的ip地方一定要安排成0.0.0.0,如果配置成127.0.0.1,外网会报错端口3000链接不通
const http = require('http');
const hostname = '0.0.0.0';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
});
server.listen(port, hostname, () => {
console.log(`传感器运行在 http://${hostname}:${port}/`);
});
// 开行
node home.js
// 如果报错'Unhandled 'error' event',可能是端口被占用了,先查看端口占用情况
ps -ef|grep node
// 如果有占用,删去占用,'xxxx'为'root'自此的数字
skill -9 xxxxx

出现:传感器运行在 http://0.0.0.0:3000/ 即表示node运作成功,运作成功之后,登录阿里云后台配置安全组规则
布局成功如下显示:

同意 自定义 TCP 3000/3000 IPv4地方段访问 0.0.0.0/0 node前台端口

接下来就足以在新石器地址栏输入你的热水器公网ip地方加上:3000,成功出现Hello World即表示安全组部署成功

6、布局nginx

// 进去 '/etc/nginx' 文件夹,查阅下 'nginx.conf' 配置文件
cd /etc/nginx
ls
vim nginx.conf
// 低版本的nginx 'nginx.conf' 文件夹里有以下内容
// # include /etc/nginx/conf.d/*.conf;
// # include /etc/nginx/sites-enabled/*;
// 去掉 '#' 号
// 创造nginx配置文件,地名随意,我通常喜欢用项目名加端口号,比如 'wxServer-3000'
vim /etc/nginx/conf.d/wxServer-3000.conf
// 编排配置文件代码
# 品种名字
upstream wxServer {
# 要求代理的node端口号,也就是你写的端口号
server 0.0.0.0:3000;
# nginx最大连接数
keepalive 8;
}
# nginx传感器实例
server {
# 办理出去的端口号,默认Http商讨的80端口,如果配置其它端口需要更改 SELinux 的安装
listen 0.0.0.0:80;
# 人家访问的店名或者ip地方,多个用空格隔开
server_name lzf.fun www.lzf.fun;
# 错误日志存放地点
access_log /var/log/nginx/wxServer-3000.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
# proxy_pass 安装反向代理用服务器域名,不利用反向代理,直接用上面upstream的名字就足以了
proxy_pass http://wxServer/;
proxy_redirect off;
}
}
// 保留配置文件后,检查是否编写错误
nginx -t
// 出现以下内容为科学
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
// 重新加载nginx传感器
systemctl reload nginx
// 在阿里云后台开启80端口的安全组,接下来在新石器输入域名,可以见到 'Hello World' 就表示nginx布局成功了

7、布局PM2

// 安装PM2
npm install pm2 -g
// 进去你的node品种存放的文件夹,pwd是你的文件夹路径
cd pwd
// 开行pm2,--watch监听,每次改动代码自动启动,-i 1 开行一个实例,根据服务器又几个基本设置
// -i 0 则会根据机器当前核数自动开启尽可能多之过程
pm2 start home.js --watch -i 1
// 查阅pm2
pm2 ls
// 查阅错误日志
pm2 logs
// 重启
pm2 restart home.js
// 停止,id穿越查看获得
pm2 stop home|id
// 删去
pm2 delete home|id
// 刺探程序的详细信息
pm2 describe home|id
// 关闭Xshell,刷新域名,还可以看见 'Hello World' 表示配置成功

链接微信公众号接口配置

8、编排本地node代码

const Koa = require('koa')
const cors = require('koa2-cors')
const Router = require('koa-router')
const crypto = require('crypto')
const app = new Koa()
// 微信配置
const config = {
wechat: {
appID: 'appID',
appsecret: 'appsecret',
token: 'Maya'
}
}
// 利用koa2-cors消灭跨域问题
app.use(
cors({
origin: ctx => {
if (ctx.url === '/test') {
return false
}
return '*'
},
exposeHeaders: ['WWW-Authenticate', 'Server-Authorization'],
maxAge: 5,
credentials: true,
allowMethods: ['GET', 'POST', 'DELETE'],
allowHeaders: ['Content-Type', 'Authorization', 'Accept']
})
)
// 送微信验证的
const wxServer = new Router()
wxServer.get('/', async ctx => {
const { signature, timestamp, nonce, echostr } = ctx.query
const token = config.wechat.token
let hash = crypto.createHash('sha1')
const arr = [token, timestamp, nonce].sort()
hash.update(arr.join(''))
const shasum = hash.digest('hex')
if (shasum === signature) {
return (ctx.body = echostr)
}
ctx.status = 401
ctx.body = 'Invalid signature'
})
// 装载所有路由
const router = new Router()
router.use('/forWx', wxServer.routes(), wxServer.allowedMethods())
// 加载路由中间件
app.use(router.routes()).use(router.allowedMethods())
app.listen(3000)
console.log('[demo] start-quick is starting at port 3000')

9、穿越内网穿透的主意测试本地代码是否ok

1、穿越localtunnel开行内网穿透,不推荐,有可能启动成功,但是域名链接失败

// 安装
npm install -g localtunnel
// 初步本地服务器
lt --port 3000

2、穿越natapp开行内网穿透,布局需要花费一点时间

可以通过内网穿透工具natapp!这篇文章安装配置,

如果你代码写的是初步3000端口,这就是说最好也安排成3000端口

tips:如果看到隧道链接成功,但是127.0.0.1:3000端口链接失败的指导,不代表安装配置失败,是急需你启动一下代码

安装配置成功之后,开行

node home.js

能够成功在新石器上观看 Invalid signature 表示内网穿透成功

10、初步一个微信公众平台测试账号

在微信公众平台测试管理页面,接口配置信息,URL填写你natapp开行的店名加上forWx,比如我之店名是

http://qf7rja.natappfree.cc/forWx

Token是你自己自定义的,可以随便写,但是要和你本地代码里之Token一致,我这里用之是Maya

点击提交,表现配置成功

11、传感器链接微信公众号接口配置

穿越上面的面试账号,检查了代码没有问题,可以配置成功接口配置,剩下的就是把代码上传来服务器了,安装选择rz和sz,当然,利用xftp更好

// 安装
yum install lrzsz -y
// 上传来,实行命令,分选打包文件
rz
// 载入,filename是你打包的热水器文件夹,或者单个文件
sz filename

上传来成功之后,解压缩,清除前面的 Hello World 代码,清空 PM2 ,重新把今天代码挂到 PM2 上

在新石器上投入域名 + forWx 能出现 Invalid signature 表示成功,如果没有出现,布局不成功,要求排查原因

在微信公众平台登录账号,分选基本配置-->传感器配置,接下来按照配置测试账号的主意去配置

点击提交,表现配置成功

尾声

嘘~~~长出了一口气,研讨了老久,node传感器总算配置成功了,而且已经链接到公众号接口配置,并且我还有一番测试账号
可以用测试账号本地写代码,接下来再上传来服务器验证的主意去开发
这样的做的缘故是,面试账号玩坏了不心疼,霎时又弄好了一下,传感器玩坏了,布局起来可就劳动了
剩下的就是开发具体工作了,什么拿到AccessToken啊,机关回复消息啊,自定义菜单啊,等等等等

上述就是本文的方方面面内容,瞩望对大家的上学有所帮助,也愿意大家多多支持脚本的师。

义务编辑:狗万官网酒店
 
 
0% (0)
 
 
0% (0)
机长评论( ) 请自觉遵守互联网相关的富民政策法规,不准发布色情、暴力、反动的议论。
地名: 匿名?


    
       
        <input id="8c82e384"></input>
       
       
       

    
       
        <input id="60ba915e"></input>