给Memos说说开启CNSF功能
白夜假如你有些色色的说说不适合在国内说,但是又想发表,那么你可以和我一样写一个中间件,对Memos的api进行反代,修改其中的内容,来达到过滤掉国内不适合访问的内容。
- 创建
app.js
文件,内容如下:
你可以修改端口为你自己合适的端口const express = require('express'); const axios = require('axios'); const app = express(); const cors = require('cors'); app.use(cors()); app.get('/data', async (req, res) => { try { const ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress; const geoResponse = await axios.get(`http://ip-api.com/json/${ip}`); console.log(geoResponse.data); const isChina = geoResponse.data.country === 'China'; const response = await axios.get('https://memos地址/api/v1/memo', { params: { creatorId: 1, tag: '说说', limit: 30 } }); let data; if (isChina) { data = response.data.filter(item => !item.content.toLowerCase().includes('{cnsf}')); } else { data = response.data; } res.json(data); } catch (error) { console.error(error); res.status(500).send('An error occurred'); } }); app.listen(3000, () => { console.log('Server is running on port 3000'); });
- 创建
package.json
文件,内容如下:
在终端输入{ "name": "memosapi", "version": "1.0.0", "description": "", "main": "app.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { "axios": "^1.6.7", "cors": "^2.8.5", "express": "^4.18.2" } }
npm install
来安装依赖
安装完成之后就可以通过node app.js
来启动啦,你可以通过forever
,pm2
,nohub
来后台启动
具体教程如下nodejs服务后台持续运行三种方法
或者通过1panel运行
在网站-运行环境-Node.js-创建运行环境
,选择源码目录,选择node版本,在应用端口
和外部映射端口
中输入3000端口外部访问
可以开启可以关闭,假如你要给其绑定域名,你可以不开启外部访问 - 设置反代
在网站-创建网站-反向代理
中输入你的域名,在代理地址中输入127.0.0.1:3000
,点击确认即可 - 使用CNSF
在Memos中输入的以下内容将不会在中国访问时出现#说说 {CNSF} 这是测试是否是在中国不显示