Nodejs + express + ejs 之服务器demo

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:1497591600000},{name:"bill", Time:1497591600000},{name:"can", Time:1497591600000}]
};

// 内存缓存账户列表
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(3000,"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:1497591600000},{name:"bill", Time:1497591600000},{name:"can", Time:1497591600000},{name:"can", Time:1497592600000}]
    };

    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();
时间: 2024-11-14 19:35:12

Nodejs + express + ejs 之服务器demo的相关文章

nodejs+express+ejs+mongoose实例

nodejs+express+ejs+mongoose实例 nodejs学得异常痛苦,在这里将学的东西做一番整理,算是自我安慰吧.根据网上todo示例,用express和mongoose重写了部分代码,主要是业务逻辑这块(CRUD),这个没什么难度.目前尚未解决的问题是:express不能使用ejs layout template,查了好久也没解决,知道的麻烦告诉我一下. 一.代码目录 二.第三方模块 1.express (1)express中文入门指引手册 (2)nodejs中文电子书 (3)

Nodejs+Express创建HTTPS服务器

为了使我的Nodejs服务器提供HTTPS服务,学习了一下如何利用express创建https服务器,现记录如下.(一点一点的积累与掌握吧) 1. Http与Https 介绍 HTTP: 超文本传输协议 (Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议. HTTPS:(Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的

Nodejs + express + ejs

特性 <% %> 用于控制流 <%= %> 用于转义的输出 (会对数据字符进行转义) // 数据源 // app.js var tem={ title:"我是中间部分", info:[{Name:"davi", Time:1497591600000},{name:"bill", Time:1497591600000},{name:"can", Time:1497591600000}] }; // ind

Windows环境下,从零开始搭建Nodejs+Express+Ejs框架(二)---安装Express,ejs

安装Express,ejs的前提是一定要先安装nodejs,具体安装方法请查看 http://www.cnblogs.com/tfiremeteor/p/8973105.html 安装Express和ejs的前提是先要创建一个项目,因为我采用的并不是全局安装的方式,顺序为,创建项目,安装Express,再安装ejs. 一.  准备工作. 关于Nodejs的所有操作都必须通过命令行来实现,并且需要进入项目所在的目录.所以,首先运行cmd,打开命令提示符.如下图 这个是默认的路径,现在要进入项目路径

Windows环境下,从零开始搭建Nodejs+Express+Ejs框架(一)---安装nodejs

第一步,安装nodejs https://nodejs.org/en/download/ 这个是nodejs的官网,由于操作系统是win7 64位的,所以,我下载的是node-v8.11.1-x64的版本.linux的同学请直接无视这篇文章吧. 安装时务必选择全部组件,包括勾选Add to Path.如下图 此时,我们可以注意到上图中的安装选项,第二个是npm的包,用来管理各种nodejs开发中所需要的插件.类似于vs中的Nuget.之前是需要单独安装的,现在已经整合到安装包,不需要额外安装了.

NodeJS+Express+MySQL开发小记(2):服务器部署

http://borninsummer.com/2015/06/17/notes-on-developing-nodejs-webapp/ NodeJS+Express+MySQL开发小记(1)里讲过在本地搭建 NodeJS 网站的若干细节.本人最近在阿里云服务器上面按最低配租了4个月的云服务器,所以想试着把这个项目部署到云上.云服务器操作系统是Ubuntu 14.04 LTS.之前一直在Windows下做开发,对于Linux下的环境搭建.配置还不是很熟悉,搭建的过程中学到很多东西. 本文简单记

【nodejs之我的开源module】 使用express搭建web服务器,代码即文档的实现。

前言 都说nodejs适合制作restful_API,因为它有异步处理能力,能吞吐更多的请求,这一点是大家都认可的.前不久我使用nodejs+express+postgresql搭建了一个restful中间处理平台,感觉express的api在代码量多的时候,显得凌乱.然后我开发了一个能够更好的组织express代码的module,借鉴了一些java中的想法.希望达到一种平衡,一种更优雅的方式组织代码. express 一个express项目的编码流程,大概是几步, 1.初始化app (expr

Nodejs express中创建ejs项目,解决express下默认创建jade,无法创建ejs问题

最近在看<Node.js开发指南>,看到使用nodejs进行web开发的时候,准备创建ejs项目遇到问题了, 书上命令为: ? 1 express -t ejs microblog 可是执行后,仍旧创建的是jade项目. 原来,express3.x,express4.x中创建ejs命令更新为: express -e microblog //即ejs,-j(即jade)  当然,最直接的,你也可以修改package.json里的定义来实现安装ejs. PS:建立工程过程 1.必须得安装expre

安装nodeJs静态服务器(NodeJs Express MVC 框架)

安装 NodeJs Express MVC 框架 新建项目文件夹 打开cmd 执行以下操作: 一.使用Express框架 1)安装express3 $: npm install -g [email protected] 2)目录下新建工程 $: express -e staticServer 3)安装所需模块 $: cd staticServer && npm install 这部执行完毕即可启动服务器 $: node app express默认public目录为静态资源目录,可在浏览器中