NodeJs从0开始到搭建一个网站

#NodeJs从0到搭建一个网站

这篇记载了我用Nodejs的过程, 从安装到完成一个投 票网站的过程。目前使用的框架是(express + mysql) ##Nodejs环境准备

1、 windows版本的下载直接安装。我安装的版本是V5.9.0 属于测试版本。

执行 node -v //查看版本信息

v5.9.0

2、 在内网安装各模块需要使用到的包。PS:因为目前在公司使用内网无法进行 npm安装 只能够在互联网将包安装好了再传到内网来。Nodejs找包的顺序是:先到本地目录下寻找node_module 找不到再到系统环境变量的目录下寻找。安装包过程如下: - 在互联网机器上某个目录下执行 npm install xxx //安装模块到当前文件下下面 如果要全局可用则执行npm install -g xxx - 该模块以及相关的依赖包会安装到当前目录的node_module模块下面, 将此包复制到内网。 - 在需要使用的项目里添加该模块即可 PS:如果需要使用全局的变量则应该修改环境变量 npm config get prefix 可以通过npm config set prefix 'D:\node_prefix'设置全局变量。这里要注意, 修改完成后一定要注意修改环境变量path, 将之前对应的环境变量路径修改成现有的环境变量路径 ##Express Helloworld var express = require('express'); var app = express(); app.listen(3000); 就简单几行就起来了, 绑定3000端口。 ##Express vote 首先确定业务场景1、一个首页展示所有的衣服以供选择。2、用户点击衣服可以投票

  • 确定用户url 1、“/” 对应首页。2、“/vote/*.json”用户投票的url

  • 明确使用的模板引擎。如下图:

      //设置ejs模板引擎  以及后缀名  目录等
      app.set('views', path.join(__dirname, 'views'));
      app.engine('.html', require('ejs').__express);
      app.set('view engine', 'html');
    
  • 设置静态目录以及post的 bod解析器, 因为自从express 4后面body-parser从 express独立出来。

  • 设置路由, 将当前路由设置好

      app.get('/', routes);
      app.post('/vote/*.json', voteroutes);
    

##Express Vote_Router 在express中最重要的就是设置路由, 路由决定了业务的拓展。下面先看app.get('/', routes);

/* GET home page. */
router.get('/', function(req, rsp, next) { 
  //var ip = getClientIp(req).split(":");
  //获取当前用户IP
  var ip = util.getIp(req); 
  //获取当前用户是否投过票, 如果已经投过票, 那么就不让他继续投票
  dao.query("select voterip, res from tshirtvote where 1 = 1 and voterip = '" + ip +"'", function cb(err, res, fields){
	if (err) { 
		//res.render('index', { title: 'Express' });
		rsp.send("系统错误");
		return ;
	}  
	console.log(res);
	console.log( res.length);
	if (res && res.length > 0) {
		rsp.render('index', { isvoted: true, title:"有结果蚂蚁文化衫投票"}); 	
	}else{
		rsp.render('index', { isvoted: false ,title:"无结果蚂蚁文化衫投票"});
	} 
  });
  
}); 

//这里看一下具体的业务处理方法

	/* GET home page. */
	voterouter.post('/vote/vote.json', function(req, rsp, next) { 
	  var ip = util.getIp(req);  
	  //获取参数  这里注意 获取post参数  这个必须安装 body-parser  并且必须显示的调用 app.use(bodyparser.urlencoded({extended: true}));
	  var param = req.body; 
		//插入数据
	  dao.query("insert into tshirtvote (username, usercode, contact, buyno, voterip, res, createtime,size) values ('"+ param["username"] +"', '"+ param["usercode"] +"', '"+ param["contact"] +"' , '"+ param["buyno"] +"'," +
		"'"+ ip +"', '"+ param["no"] +"',0, '"+ param["size"] +"')", function cb(err, res, fields){
		if (err) { 
			rsp.send("系统错误");
			return ;
		}  
		rsp.send({"status":"OK"});  
	  });
	 
	});

转载于:https://my.oschina.net/xbding/blog/700116

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值