文档章节

nodejs 点滴

Mrseven
 Mrseven
发布于 2016/06/16 16:34
字数 478
阅读 8
收藏 0

 

1、注册模板引擎

var ejs = require("ejs");
var express = require("express");
var app = express();
app.engine('.html', ejs.__express);
app.set('view engine', 'html');

 

2、注册静态资源

var express = require("express");

app.use(express.static(__dirname + '/public'));
app.use('/views', express.static(__dirname+'/views'));

 

3、接收post参数(需要安装body-parser ----npm install body-parser --save)

   如果终端出现以下提示信息,就说明你引用body-parser 的方式已经过时

    

正确引用body-parser 方式为: app.use(require('body-parser').urlencoded({extended:false}));

var express = require("express");
var app = express();
app.use(require('body-parser')());
app.post('/form', function(req, res){
	console.log(req.body.username);
        res.redirect(303, '/thank-you');
});

 

4、express 中的cookie 使用

      首先安装 cookie-parser     npm install cookie-parser --save

var express = require("express");
var app = express();
var router = express.Router();
app.use(require("cookie-parser")());
app.use(require("body-parser")());

//存储cookie 
router.post('/login', function(req, res){
   //获取用户名和密码
   var username = req.body.username;
   var password = req.body.password;

   if(username != null && password != null){
       // 存入cookie, 有效期为 900000ms
       res.cookie('username', username, {expires: new Date(Date.now() + 900000)});
       res.cookie('password', password, {expires: new Date(Date.now() + 900000)});
   }

   res.redirect('/index');
});

router.get('/index', function(req, res){
    // 取出cookie中的值
    res.send('登录成功====用户名'+req.cookies.username);
});

app.use('/', router);
app.listen(3030, function(){
    console.log('app is running');
});

      

5、使用SMTP发送邮件

    安装发送邮件的包----npm install nodemailer --save

       var mailTransport = nodemailer.createTransport({
		host:'smtp.163.com',
		port: 25,
		proxy: 'http://10.167.32.133:8080/',
		auth:{
			user:'****@163.com',
			pass:'*****'
		}
	});
	mailTransport.sendMail({
		from:'验证码 <****@163.com>',
		to: email,
		subject:'验证码',
		generateTextFromHTML: true,
		html: '邮件内容',
	}, function(error, response){
		if(error){
			console.log(error);
			res.send('failed');
		} else {
			console.log('Message send:'+response.message);
			res.send('success');
		}
		mailTransport.close();
	});

    注意:

       1、如果在nodemailer.createTransport({}); 中多添加个参数'SMTP', 例如:nodemailer.createTransport('SMTP',{});  程序会报错

             因为nodemailer 1.10.* 以上的版本就不需要设置SMTP参数了

        2、如果使用163邮箱发送邮件,密码不再是邮箱的登录密码,而是邮箱的授权密码。

 

6、处理回调函数的层层嵌套

      安装包    npm install async --save

                  async.series({
			auname:function(done){
				client.get('username',function(err, replies){
					if(err){
						done(err, null);
					}
					else{
						if(replies.length){
							done(null, replies);
						}
					}
				});

				
			},
			apass:function(done){
				client.get('password', function(err, replies){
					if(err){
						done(err, null);
					}
					else{
						if(replies.length){
							done(null, replies);
						}
					}
				});
			},
		}, function(err, result){
			if(err){
				console.log(err);
			} else {
				if(result.apass && result.auname){
					res.send('success');
				} else {
					res.send('no');
				}
				console.log(result);
			}
		});

   博客资料:http://yijiebuyi.com/blog/be234394cd350de16479c583f6f6bcb6.html

                        https://github.com/caolan/async

 

© 著作权归作者所有

共有 人打赏支持
Mrseven
粉丝 0
博文 52
码字总数 39044
作品 0
朝阳
程序员
nodejs express 启动报错:Error: Cannot find module 'xxx'

版权声明:本文为 testcsdn(微wx笑) 原创文章,非商用自由转载-保持署名-注明出处,谢谢。 https://blog.csdn.net/testcsdn/article/details/54236189 nodejs express 启动报错:Error: Canno...

微wx笑
2017/01/08
0
0
Node 案发现场揭秘 —— Coredump 还原线上异常

Node 案发现场揭秘 —— Coredump 还原线上异常 const article = { title: "Node.js", content: "Hello, Node.js" }; setTimeout(() => {console.log(article.b.c);}, 1000); $ npm install ......

黄一君
08/03
0
0
Skywalking Node.js 探针 0.1.0 版本正式发布

项目介绍: Skywalking Node.js探针0.1.0版本正式发布了. Skywalking Node.js探针是由Skywalking社区提供专门针对Node.js生态下的后端应用提供的自动探针。 Skywalking Node.js探针遵守Skywa...

Xin_Zhang_BJ
05/21
0
1
Nodejs + Express 实现多用户博客系统(23 个视频)

Nodejs 实现最常见的登录注册功能,结合管理文章等功能,实现大家所期待的多用户博客系统。 总播放时长:135 分钟 作者:hfpp2012 类别:后端 技术分类:Nodejs Node.js + Express 实现多用户...

rails365
08/15
0
0
Node.js的学习资源、教程和工具

这篇文章编译整理自Stack Overflow的一个如何开始学习Node.js的Wiki帖,这份资源列表在SO上面浏览接近60万次,数千个收藏和顶。特意整理发布到这里,其中添加了部分中文参考资料。 学习指南和...

90后爱国
2015/07/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

SSM框架整合Shiro后的开发

手摸手教你SSM框架整合Shiro后的开发 前面,我们学习了Shiro实现权限管理之表结构设计以及JQuery-Ztree.js使用范例 ,接下来就详细介绍一下SSM框架整合Shiro框架后的开发。同样推荐大家参看张...

TyCoding
3分钟前
0
0
Vivado使用误区与进阶

vivado的相关认知。xilinx的专家写的文章。

whoisliang
9分钟前
0
0
使用Nagios打造专业的业务状态监控

想必各个公司都有部署zabbix之类的监控系统来监控服务器的资源使用情况、各服务的运行状态,是否这种监控就足够了呢?有没有遇到监控系统一切正常确发现项目无法正常对外提供服务的情况呢?本...

37丫37
10分钟前
1
0
自定义操作RxJava 学习笔记

二十三,有点让我想起《风云》里面的剑二十三式 RxJava提供了一套非常强大的操作集。如果计算所有重载次数,Rx上的运算符数量超过300。其中少数运算符必不可少,这意味着没有它们就无法实现R...

woshixin
25分钟前
0
0
mysql视图

测试表:user有id,name,age,sex字段 测试表:goods有id,name,price字段 测试表:ug有id,userid,goodsid字段 视图的作用实在是太强大了,以下是我体验过的好处: 作用一: 提高了重用性,...

郭周园
27分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部