nodejs读取文件优势小体验
场景需求:
首先,我做的是javaweb项目,其中批量注册功能,注册前会批量发短信给客户。在开发环境,如果总是批量发信息,一是浪费资源;二是造成骚扰。所以发短信要假发。也就是把短信的内容写到文件或数据库中,写到数据库,前端同事需要数据时还要每次都给他找,太麻烦了。所以一个好方法就是把短信内容写到文件中,通过一个服务来读取文件内容,其他人访问服务url就可以了。
原想的是在javaweb项目中加个servlet,servlet读取文件内容,再访问servlet就可以显示文件内容,但是这样就会和javaweb项目耦合在一起,不符合解耦原则。在鹏哥的帮助下,使用了nodejs,参照鹏哥的例子才完成这个功能
第一步:创建msg.js文件,输入内容如下
作用是读取两个文件的内容放在一下显示
var http = require("http");
var fs=require("fs");
var logfile_inviteCode = "E:/nodejs/meipro-msg.log";
var logfile_authCode = "E:/nodejs/meipro-msg2.log";
http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/plain;charset=utf-8"});
var exists = fs.existsSync(logfile_inviteCode);
var exists2 = fs.existsSync(logfile_authCode);
var data;
if(exists==true){
data="邀请码:\n"+fs.readFileSync(logfile_inviteCode,"utf-8")+"\n\n";
}
if(exists2==true){
data+="验证码:\n"+fs.readFileSync(logfile_authCode,"utf-8");
}
if(!exists&&!exists2){
data="没任何短信操作;";
}
response.write("发送短信后刷新该页面:\n"+data);
response.end();
}).listen(8888);
msg.txt文件内容:
hello
msg2.txt文件内容:
world
运行msg.js需要nodejs环境,下载安装nodejs,之后在msg.js目录下打开终端,输入node msg.js,在浏览器中输入localhost:8888,一切顺利的话会显示出文件的内容:
hello world
如果要在linux下把此服务作为后台任务,输入命令:node msg.js &