资讯专栏INFORMATION COLUMN

express+nginx 搭建最简单web项目

kbyyd24 / 3856人阅读

摘要:但是之前是直接用本地去执行代码,代码执行后无法改变其状态,于是打算用和来做一个简单的站点去执行操作。代码逻辑整个逻辑很简单,一个简单的前端页面,提供表单来发送请求修改发送的消息,服务端使用文件来保存消息,在需要发送消息的时候读取消息。

背景

之前写了一个钉钉机器人定时发消息的应用,感觉还有许多可以补充优化的地方,比如可以修改发送的消息内容,也可以启动或者停止定时发送消息。

但是之前是直接用本地node去执行代码,代码执行后无法改变其状态,于是打算用express和nginx来做一个简单的站点去执行操作。

代码逻辑

整个逻辑很简单,一个简单的前端页面,提供表单来发送请求修改发送的消息,服务端使用json文件来保存消息,在需要发送消息的时候读取json消息。

话不多说,直接上代码:

创建服务

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(`接收到修改消息的内容为:${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(`消息的内容已修改为:${JSON.stringify(content)}`);

  res.json("消息文案已完成修改");
};
部署执行 安装nginx

nginx安装说起来比较简单,但因为是第一次装,还是踩了不少坑, 主要就是关注各个依赖的版本了,这个可以参考网络上的教程nginx安装

部署

进入到项目目录下,启动一个后台进程来执行express。。。

配置nginx

核心代码如下(参考链接):

    upstream mysvr {   
      server 127.0.0.1:7878;  // 需要被代理的服务器
   
    }
    
     server {
    listen 80;
    server_name 127.0.0.1;
    location / {
        proxy_pass http://mysvr;  // nginx代理的服务
        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 相关命令

启动
[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
验证配置文件
[root@localhost ~]# /usr/local/nginx/sbin/nginx -t
配置文件
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

[cenos防火墙设置](https://blog.csdn.net/u011846...)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/39904.html

相关文章

  • 公司项目NODEJS实践0.1[ ubuntu,nodejs,nginx...]

    摘要:创建成功后进入文件夹执行执行作用创建文件,维护项目的依赖文件解释创建文件执行作用用系统的编辑器打开文件。我的技术新群上一篇前后端分离项目实践分析下一篇公司项目实践 一、前言 前端如何独立用nodeJs实现一个简单的注册、登录功能,是不是只用nodejs+sql就可以了?其实是可以实现,但离实际应用还有距离,那要怎么做才是实际可用的。 网上有很多nodeJs的示例,包括和 sql /...

    cppprimer 评论0 收藏0
  • nodejs搭建web服务器(简单代理)

    摘要:前端获取数据时经常会遇到跨域问题,用做反向代理就可以解决此问题。但是属于中间件代理,不同开发者布署的服务器地址可能不一样,这样的配置就不能做到通用了。那能不能仿照写了一个简单的服务器,用于非的项目呢。 前端获取数据时经常会遇到跨域问题,用 nginx 做反向代理就可以解决此问题。但是 nginx 属于中间件代理,不同开发者布署的 web 服务器地址可能不一样,这样 nginx 的配置就...

    J4ck_Chan 评论0 收藏0
  • Nginx

    摘要:此外,其也能够提供强大的反向代理功能。是由为俄罗斯访问量第二的站点开发的,第一个公开版本发布于年月日。 keepalived+nginx 实现高可用双机热备 + 负载均衡架构 1 准备4个ubuntu16.04虚拟机(启用网卡二并使用桥接模式):A服务器:192.168.0.103 主B服务器:192.168.0.104 主(备) 前端工程师学习 Nginx ...

    syoya 评论0 收藏0

发表评论

0条评论

kbyyd24

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<