文档章节

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

 

© 著作权归作者所有

共有 人打赏支持
上一篇: CommonJS
下一篇: nodejs 代理
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 ......

黄一君
2018/08/03
0
0
Node.js v0.12.8 发布

Node.js v0.12.8 发布,更新如下: Commits [] - build: backport tools/release.sh (Rod Vagg) #3642 [] - build: backport config for new CI infrastructure (Rod Vagg) #3642 [] - build......

oschina
2015/11/26
3.1K
20
Node.js进阶教程第一步(基础篇)-何韬-专题视频课程

Node.js进阶教程第一步(基础篇)—18659人已学习 课程介绍 本课程从Node.js的安装配置开始,包括函数调用,模块调用,路由,文件操作,异常处理,参数接收,正则表达式,连接数据库,事件等内...

pkutao
2016/09/06
0
0
Node.js的学习资源、教程和工具

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

90后爱国
2015/07/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

对Docker了解多少?10分钟带你从入门操作到实战上手

Docker简述 Docker是一种OS虚拟化技术,是一个开源的应用容器引擎。它可以让开发者将应用打包到一个可移植的容器中,并且该容器可以运行在几乎所有linux系统中(Windows10目前也原生支持,W...

别打我会飞
21分钟前
1
0
Java自定义注解及应用

前沿 java目前只内置了三种标准注解 注解 解释 @Override 表示当前的方法定义将覆盖超类中的方法。如果你不小心拼写错误,或者方法签名对不上被覆盖的方法,编译器就会发出错误提示 @Depreca...

细节探索者
25分钟前
1
0
Java实现视频网站的视频上传、视频转码、视频关键帧抽图, 及视频播放功能

视频网站中提供的在线视频播放功能,播放的都是FLV格式的文件,它是Flash动画文件,可通过Flash制作的播放器来播放该文件.项目中用制作的player.swf播放器. 多媒体视频处理工具FFmpeg有非常强大...

红土豆
28分钟前
1
0
谈谈lucene的DocValues特性之SortedDocValuesField

lucene的DocValues不同于document文档级别的存储,它是一个面向列的存储结构,提供从文档编号到值的映射功能。根据不同的数据类型和应用场景支持多个DocValuesField类型,SortedDocValuesFi...

FAT_mt
42分钟前
3
0
漏洞防御与修复工作

导读 漏洞管理工作是企业安全建设必不可少的一环,在风险管理工作中,漏洞管理能够防患于未然,企业对漏洞管理有着广泛的基础建设和实践经验。但随着攻防技术的发展,传统漏洞管理的安全技术...

问题终结者
45分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部