文档章节

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 ......

黄一君
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
Node.js进阶教程第一步(基础篇)-何韬-专题视频课程

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

pkutao
2016/09/06
0
0
Nodejs + Express 实现多用户博客系统(23 个视频)

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

rails365
08/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

浅谈“李氏代换”——从纪念金庸和斯坦李说起

李氏代换(LSP)简介 李氏代换是软件设计的一个原则,又名依赖倒转原则或依赖倒置原则,其衍生原则有接口分离原则等。该原则由Barbara Liskov于1988年提出。 该原则指出,程序中高级别的元素...

SamYjy
16分钟前
8
0
JavaScript实现在线websocket WSS测试工具 -toolfk程序员工具网

本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工具,不用安装任何软件,只要把内容贴上按一个执行按钮,就能获取到想要的内容结果。T...

toolfk
35分钟前
0
0
linux-scp 远程拷贝报错原因

刚拿到一台重装后的服务器,远程ssh都正常,但是一scp拷贝东西就报错: 本地确定是有scp命令的,而且如果是本地没有scp不会报后面那句lost connection,因此就是远程没有scp这个命令。因此在...

linuxprobe16
48分钟前
1
0
OSChina 周六乱弹 —— 谁小时候没当过熊孩子呀

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小小编辑:推荐歌曲《行尸走肉》- amazarashi 《行尸走肉》- amazarashi 手机党少年们想听歌,请使劲儿戳(这里) @神话 :周五了,周末干啥...

小小编辑
今天
94
4
docker部署springboot项目

安装docker 菜鸟教程 springboot项目 maven依赖 <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001......

yimingkeji
今天
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部