`
cjx186
  • 浏览: 269703 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

nodejs中使用velocity

阅读更多
学习nodejs框架发现都是jade,不复杂,也不想学,如果会velocity就不用再学jade了。
可以直接在nodejs中使用velocity,因为npm里有velocityjs。
用express建一个项目
引用
express demo
目录如下:
│  app.js            //node app.js 启动
│  package.json
│
├─public
│  ├─css
│  ├─img
│  └─js
├─routes
│      index.js
│      user.js
└─views              //vm模板
        footer.vm
        head.vm
        index.vm
        mainBody.vm
改package.json(默认是jade,其实不改也没关系)
{
  "name": "cjx",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node app.js"
  },
  "dependencies": {
    "express": "3.4.3",
    "jade": "*",
    "velocityjs":"0.4.2"
  }
}


稍改app.js就行
/**
 * Module dependencies.
 */
var express = require('express')		//express
var velocity = require('velocityjs')	//velocityjs
var routes = require('./routes')
var user = require('./routes/user')
var http = require('http')				//
var fs = require('fs')					//
var path = require('path')				//
var routes = require('./routes')		//
var app = express()						//app
var cwd = process.cwd()					//cwd
console.log("cwd="+cwd);

// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'vm');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser('your secret here'));
app.use(express.session());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));

//全用vm模板引擎
app.engine('vm',function(path,options,fn){
	var template = fs.readFileSync(path).toString();
	var macros = {
	    parse: function(file) {
		    var template = fs.readFileSync(cwd + '/views/' + file).toString()
			return this.eval(template);
	    }
	}
	try{
		fn(null, velocity.render(template, options, macros))
	}catch(err){
		console.log(err);
		fn(err)
	}
});//end engine	

app.use(express.static(cwd+"/public"));
app.use(express.logger());

app.get('/index', routes.index);



//设端口
var port = process.argv[2];
port = /^\d{4,5}$/.test(port) ? port :app.get('port');
console.log('Listening on', port);

http.createServer(app).listen(port, function(){
	console.log('Server listening on port ' + port);
}).on('error',function(err){
	console.log('错了',err.code);
});
分享到:
评论

相关推荐

    grunt-velocity-requirejs

    许多公司使用Java + velocity模块开发,前后端开发都在一个Java工程项目中, 为了开发velocity模版,前端开发人员需要安装eclipse运行整个Java工程,环境配置复杂, 启动速度也慢,而且也不便于前后端代码分离。 ...

    grunt-velocity-requirejs-demo

    许多公司使用Java + velocity模块开发,前后端开发都在一个Java工程项目中, 为了开发velocity模版,前端开发人员需要安装eclipse运行整个Java工程,环境配置复杂, 启动速度也慢,而且也不便于前后端代码分离。 ...

    电商项目前端架构详解1

    基于NodeJs的前端开发生态可以解决前端和后端的开发分离问题,前端工程师可以使用NodeJs来编写后端代码,实现前后端的无缝切换。 3. 前后端分离带来的问题分析 前后端分离可以带来许多问题,如跨域问题、同源策略...

    基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践

    在这个体系中,Nginx 将请求转发给 Java 应用,后者处理完事务,再将数据用 Velocity 模板渲染成最终的页面。 引入 Node.js 之后,我们势必要面临以下几个问题: 技术栈的拓扑结构该如何设计,部署方式该如何选择,...

    EchoContentVelocity:将新内容的比率显示为实时量表

    Echo Content Velocity 应用程序允许将新内容的速率显示为实时仪表。 安装说明 克隆这个存储库。 从 (从包或源)下载并安装 NodeJS 和 npm。 须藤 npm install grunt-cli -g 在项目目录下运行以下命令:npm ...

    前后端分离系统架构概述.docx

    通过使用 nginx+tomcat 或者中间加一个 nodejs 的方式,可以有效地进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS 等等...

    代码生成器实现的Entity,Dao,Service,Controller,JSP神器(含代码附件)

    模板引擎如FreeMarker或Velocity被用来根据模板和数据生成具体的代码文件。用户还可以自定义模板,以满足特定的编码风格或项目需求。 7. **应用场景**: - 快速搭建新项目:在项目初期,利用代码生成器可以迅速...

    IT工作岗位汇总及岗位要求 (2).docx

    * 精通一种模板语言(Smarty、Velocity、Django 等) * 熟悉 Linux 平台,掌握一种后端开发语言(PHP/Java/C/C++/python 等) * 有前端性能优化经历 * 具有一定的软件工程意识,对数据构造和算法设计有充分理解 四...

    myblog:项目:一款Github上开源的博客系统项目 目的:对学到的框架、开源组件、前端技术进行应用学习。同时开发完成后写技术博客,开源到Github上

    开源博客系统,开发中... 开源博客系统项目方案 【前言】 项目:一款Github上开源的博客系统项目 目的:对学到的JavaEE框架、开源组件、前端技术进行应用学习。同时开发完成后写技术博客,开源到Github上 开源 前端...

    IT工作岗位汇总及岗位要求 (2).pdf

    精通一种模板语言(Smarty、Velocity、Django 等),熟悉 Linux 平台,掌握一种后端开发语言(PHP/Java/C/C++/python 等),有前端性能优化经历,具有一定的软件工程意识,对数据构造和算法设计有充分理解。...

    jsynchronous:Jsynchronous.js - 游戏和实时网络应用的数据同步

    同步.js 将快速变化的应用程序状态与所有连接的浏览器同步。 Jsynchronous 确保所有客户端看到的数据与您的服务器上的数据相同 - 即使它发生变化。 对于游戏来说足够快,对于...{ velocity : { x : 5 , y : 1.01 }

    IT工作岗位汇总及岗位要求word精品文档12页.pdf

    精通一种模板语言(Smarty、Velocity、Django 等),熟悉 Linux 平台,掌握一种后端开发语言(PHP/Java/C/C++/python 等),有前端性能优化经验,具有一定的软件工程意识,对数据结构和算法设计有充分理解。...

    工作岗位汇总及岗位要求.pdf

    * 需要的技能:深刻理解计算机数据结构和算法设计,精通 C/C++、Java、PHP 中至少一门编程语言,了解 windows、unix、linux 等主流操作系统原理,熟练运用系统层支持应用开发 二、移动软件研发工程师工作职责: * ...

Global site tag (gtag.js) - Google Analytics