摘要:但是之前是直接用本地去執(zhí)行代碼,代碼執(zhí)行后無法改變其狀態(tài),于是打算用和來做一個(gè)簡單的站點(diǎn)去執(zhí)行操作。代碼邏輯整個(gè)邏輯很簡單,一個(gè)簡單的前端頁面,提供表單來發(fā)送請(qǐng)求修改發(fā)送的消息,服務(wù)端使用文件來保存消息,在需要發(fā)送消息的時(shí)候讀取消息。
背景
之前寫了一個(gè)釘釘機(jī)器人定時(shí)發(fā)消息的應(yīng)用,感覺還有許多可以補(bǔ)充優(yōu)化的地方,比如可以修改發(fā)送的消息內(nèi)容,也可以啟動(dòng)或者停止定時(shí)發(fā)送消息。
但是之前是直接用本地node去執(zhí)行代碼,代碼執(zhí)行后無法改變其狀態(tài),于是打算用express和nginx來做一個(gè)簡單的站點(diǎn)去執(zhí)行操作。
代碼邏輯整個(gè)邏輯很簡單,一個(gè)簡單的前端頁面,提供表單來發(fā)送請(qǐng)求修改發(fā)送的消息,服務(wù)端使用json文件來保存消息,在需要發(fā)送消息的時(shí)候讀取json消息。
話不多說,直接上代碼:
創(chuàng)建服務(wù)const express = require("express"); const handleSendMsg = require("./src/sendMsg"); const doSchedule = require("./src/doSchedule"); const changeText = require("./src/changeText"); const app = express(); app.use(express.static("static")); app.get("/changeText.json", changeText); app.get("/sendMsg.json", handleSendMsg); app.get("/doSchedule.json", doSchedule); app.listen(3008, () => { console.log("Listening on port %d", 3008); });處理消息
const logger = require("../myLogger"); const path = require("path"); const fs = require("fs"); module.exports = function(req, res) { const query = req.query; logger.info(`接收到修改消息的內(nèi)容為:${JSON.stringify(query)}`); const content = JSON.parse(fs.readFileSync(path.join(__dirname, "../config.json"))); if (query.workOff) { content.workOff = query.workOff; } if (query.workOn) { content.workOn = query.workOn; } fs.writeFileSync(path.join(__dirname, "../config.json"), JSON.stringify(content)); logger.info(`消息的內(nèi)容已修改為:${JSON.stringify(content)}`); res.json("消息文案已完成修改"); };部署執(zhí)行 安裝nginx
nginx安裝說起來比較簡單,但因?yàn)槭堑谝淮窝b,還是踩了不少坑, 主要就是關(guān)注各個(gè)依賴的版本了,這個(gè)可以參考網(wǎng)絡(luò)上的教程nginx安裝
部署進(jìn)入到項(xiàng)目目錄下,啟動(dòng)一個(gè)后臺(tái)進(jìn)程來執(zhí)行express。。。
配置nginx核心代碼如下(參考鏈接):
upstream mysvr { server 127.0.0.1:7878; // 需要被代理的服務(wù)器 } server { listen 80; server_name 127.0.0.1; location / { proxy_pass http://mysvr; // nginx代理的服務(wù) proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }nginx 相關(guān)命令
啟動(dòng)
[root@localhost ~]# /usr/local/nginx/sbin/nginx
停止/重啟
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s stop(quit、reload)
命令幫助
[root@localhost ~]# /usr/local/nginx/sbin/nginx -h
驗(yàn)證配置文件
[root@localhost ~]# /usr/local/nginx/sbin/nginx -t
配置文件
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
[cenos防火墻設(shè)置](https://blog.csdn.net/u011846...)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/39904.html
摘要:創(chuàng)建成功后進(jìn)入文件夾執(zhí)行執(zhí)行作用創(chuàng)建文件,維護(hù)項(xiàng)目的依賴文件解釋創(chuàng)建文件執(zhí)行作用用系統(tǒng)的編輯器打開文件。我的技術(shù)新群上一篇前后端分離項(xiàng)目實(shí)踐分析下一篇公司項(xiàng)目實(shí)踐 一、前言 前端如何獨(dú)立用nodeJs實(shí)現(xiàn)一個(gè)簡單的注冊、登錄功能,是不是只用nodejs+sql就可以了?其實(shí)是可以實(shí)現(xiàn),但離實(shí)際應(yīng)用還有距離,那要怎么做才是實(shí)際可用的。 網(wǎng)上有很多nodeJs的示例,包括和 sql /...
摘要:前端獲取數(shù)據(jù)時(shí)經(jīng)常會(huì)遇到跨域問題,用做反向代理就可以解決此問題。但是屬于中間件代理,不同開發(fā)者布署的服務(wù)器地址可能不一樣,這樣的配置就不能做到通用了。那能不能仿照寫了一個(gè)簡單的服務(wù)器,用于非的項(xiàng)目呢。 前端獲取數(shù)據(jù)時(shí)經(jīng)常會(huì)遇到跨域問題,用 nginx 做反向代理就可以解決此問題。但是 nginx 屬于中間件代理,不同開發(fā)者布署的 web 服務(wù)器地址可能不一樣,這樣 nginx 的配置就...
閱讀 1293·2019-08-30 12:49
閱讀 3163·2019-08-28 18:14
閱讀 840·2019-08-26 11:38
閱讀 1701·2019-08-23 18:23
閱讀 2840·2019-08-23 17:04
閱讀 522·2019-08-23 16:52
閱讀 4064·2019-08-23 16:43
閱讀 2789·2019-08-23 16:12