var http=require("http");
var express=require("express");
var fs = require("fs");
var bodyParser = require('body-parser');
var Common = require("./publice/common");
var app=express(); // 定时器
var refTimer = null; var tem={
title:"我是中间部分",
info:[{Name:"davi", Time:},{name:"bill", Time:},{name:"can", Time:}]
}; // 内存缓存账户列表
var AccountMap = {}; // 初始化账号列表
function init () {
// 从文件中加载数据到 AccountMap
var data = operatFile(); if(data) AccountMap = data;
} //app.use(bodyParser.json()); // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded //创建服务器
http.createServer(app).listen(,"0.0.0.0",function(){
console.log("Server is listening port 3000");
}); //挂载静态资源处理中间件
app.use(express.static(__dirname)); //挂载静态资源处理中间件
//app.locals.Common = Common;
app.use(function(req, res, next){
res.locals.Common = Common;
next();
}); //设置模板视图的目录
app.set("views","./views"); //设置是否启用视图编译缓存,启用将加快服务器执行效率
app.set("view cache",true); //设置模板引擎的格式即运用何种模板引擎
app.set("view engine","ejs"); //设置路由
app.get("/",function(req,res){
var logData = AccountMap || operatFile();
return res.render("index",tem);
});
app.get("/index",function(req,res){
var logData = AccountMap || operatFile();
return res.render("index",tem);
}); //写个接口
app.get('/history',function(req,res){
var logData = AccountMap || operatFile();
//res.json({State: 0, Data: {title:tem.message,names:["odl", "dkkd", "ejs", "kkk"]}});
var item = {
title:"我是中间部分",
info:[{Name:"davi", Time:},{name:"bill", Time:},{name:"can", Time:},{name:"can", Time:}]
}; return res.render("tradeLog",item);
});

// 数据推送 (主要提供给 数据库服务器 数据推过来)
app.post('/account/info',function(req, res){
// 数据格式
// {user: 'xjl30', info: {}}
// 保存数据
// 保存到文件和内存中
var param = JSON.stringify(req.body);
console.log("<-----------------------分割线-------------------------->");
console.log("数据来啦: " + param); //AccountMap[]
if(param){
AccountMap = param;
operatFile(param); // 数据保存到文件中
}
}); // 数据处理
function operatFile(fData){
console.log("打开文件"); fs.open("./log/historyLog.txt", "w+", function(err, fd){ // w+ 以读写模式打开文件,如果文件不存在则创建。
if(err){
return console.error(err);
}
if(fData)
fs.writeFile('./log/historyLog.txt', fData, function(err) {
if (err) {
return console.error(err);
}
console.log("写入文件数据"); fs.close(fd);
});
else
getLogFile(fd);
});
} function getLogFile(fd){
var historyData = "";
fs.readFile('./log/historyLog.txt', function (err, data) {
if (err) {
return console.error(err);
}
if (data.toString()==""){
return console.error("文件数据为空");
}
historyData = data;
console.log("读取文件数据"); fs.close(fd);
}); return historyData;
} init();

最新文章

  1. C++ Daily 《6》---- 类静态对象与函数静态对象
  2. 在阿里云ECS上搭建LEMP环境
  3. python_way ,day11 进程
  4. [Flex] ButtonBar系列——labelFunction用户提供的函数,在每个项目上运行以确定其标签
  5. eclipse反编译插件
  6. IO流(随机流,数组内存流
  7. 关于《s3c2416裸跑环境配置》一文的一些补充
  8. POJ1845-Sumdiv大数约数和
  9. thinkjs—控制器方法名不能大写
  10. C# 堆栈(Stack)和队列(Queue)
  11. MyBaits全局配置文件的各项标签2
  12. java.sql.SQLException: Column count doesn&#39;t match value count at row 1 解决办法
  13. Codeforces 305E Playing with String 博弈
  14. python3 词法拆分
  15. 愛與痛的邊緣--IPA--粤语
  16. Oracle 命令
  17. [ASP.NET]使用Layer简介
  18. DotNetCore依赖注入实现批量注入
  19. Laravel的目录结构分析
  20. spring(四) 手动整合web项目(SSH)

热门文章

  1. CentOS 7 安装方式汇总
  2. Q239 滑动窗口最大值
  3. python socket文件传输实现
  4. Springboot用官方建议访问Html页面并接传值
  5. 从setTimeout谈js运行机制
  6. VisualSVN Server提供程序无法执行所尝试的操作 0x80041024
  7. UTF8最好不要带BOM,附许多经典评论
  8. WPF UpdateSourceTrigger属性
  9. 在Linux上创建webrev(cont)[基于svn]
  10. ASP.NET Core 中的配置