文档章节

nodejs 点滴

Mrseven
 Mrseven
发布于 2016/06/16 16:34
字数 478
阅读 7
收藏 0
点赞 0
评论 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
博文 20
码字总数 39044
作品 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 ⋅ 1

针对 Node.js 后端应用的自动探针 - Skywalking Node.js

Skywalking Node.js探针是由Skywalking社区提供专门针对Node.js生态下的后端应用提供的自动探针 Skywalking Node.js探针遵守Skywalking追踪协议,Node.js探针能够结合SkyWalking的后端分析追...

Xin_Zhang_BJ ⋅ 05/21 ⋅ 0

Node.js在windows下的安装

Node.js 安装配置 本章节我们将向大家介绍在window和Linux上安装Node.js的方法。 本安装教程以Node.js v4.4.3 LTS(长期支持版本)版本为例。 Node.js安装包及源码下载地址为:https://nodejs....

梦梦阁 ⋅ 06/06 ⋅ 0

Node.js VS PHP:Web 开发的史诗级对决,你支持谁?

现在,Web开发公司和开发人员可以选择多种技术栈来构建Web应用程序。早期网络发展,不同的技术被用于前端和后端开发。但是,随着Node.js的发布,布局发生了变化,因为它允许开发人员使用 Ja...

uzv80px5v412ne ⋅ 2017/12/29 ⋅ 0

SkyWalking/skywalking-nodejs

SkyWalking Node.js SkyWalking Node.js is the Node.js instrumentation agent, which is compatible with Apache SkyWalking(Incubating) APM backend and others compatible agents/SDKs.......

SkyWalking ⋅ 05/21 ⋅ 0

[Node.js源码解读(1)]Node.js的启动过程

本文原载于https://github.com/DavidCai1993/my-blog/issues/26 经原作者授权连载于alinode官方博客,未经原作者允许,不得转载。 大家可能会好奇,在 Node.js 启动后,第一个执行的 JavaSc...

_朴灵_ ⋅ 05/14 ⋅ 0

Ubuntu里node命令无效解决方法

在ubuntu里用sudo apt-get install nodejs安装Node.js后,会发现terminals里运行node命令(比如node –-version)时候会有No such file or directory的错误。引起这个错误的主要的主要原因是...

独孤梦杨柳 ⋅ 05/17 ⋅ 0

Node.js 8.11.3 和 10.4.1 发布,JavaScript 运行时

Node.js 8.11.3 和 10.4.1 发布了,更新内容如下: 8.11.3 Notable Changes buffer (CVE-2018-7167): Fixes Denial of Service vulnerability where calling Buffer.fill() could hang http......

淡漠悠然 ⋅ 06/14 ⋅ 0

柏林纪行(中):Node.js Collaboration Summit

传送门: 柏林纪行(上):整体感受 柏林纪行(中):Node.js Collaboration Summit 柏林纪行(下):JSConf EU Node.js Collaboration Summit 比较沉重的思考写完,下面是比较轻松的部分了…...

_朴灵_ ⋅ 05/14 ⋅ 0

為什麼 Node.js 不適合大型和商業專案?

JavaScript 和 Node.js 一直都是這幾年的話題,無論是前端還是後端,到處都可見 JavaScript,就好像爬滿了你全身上下,他們不斷地對你說道「嘿!老兄!快來用我吧!」。 為什麼 Node.js 會這...

临江仙卜算子 ⋅ 05/25 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

CENTOS7防火墙命令记录

安装Firewall命令: yum install firewalld firewalld-config Firewall开启常见端口命令: firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --zone=public --add-po......

cavion ⋅ 今天 ⋅ 0

【C++】【STL】利用chromo来测量程序运行时间与日志时间打印精确到微秒

直接上代码吧,没啥好说的。头疼。 #include <iostream>#include <string>#include <ctime>#include <sstream>#include <iomanip>#include <thread>#include <chrono>using ......

muqiusangyang ⋅ 今天 ⋅ 0

Mac环境下svn的使用

在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境。在Mac环境下,由于Mac自带了svn的服务器端和客户端功能,所以我们可以在不装任何第三方软件的前提下使用svn功能,不过还需做一下简...

故久呵呵 ⋅ 今天 ⋅ 0

破解公司回应苹果“USB限制模式”:已攻破

本周四,苹果发表声明称 iOS 中加入了一项名为“USB 限制模式”的功能,可以防止 iPhone 在连接其他设备的时候被破解,并且强调这一功能并不是针对 FBI 等执法部门,为的是保护用户数据安全。...

六库科技 ⋅ 今天 ⋅ 0

MyBtais整合Spring Boot整合,TypeHandler对枚举类(enum)处理

概要 问题描述 我想用枚举类来表示用户当前状态,枚举类由 code 和 msg 组成,但我只想把 code 保存到数据库,查询处理,能知道用户当前状态,这应该怎么做呢?在 Spring 整合MyBatis 的时候...

Wenyi_Feng ⋅ 今天 ⋅ 0

synchronized与Lock的区别

# <center>王梦龙的读书笔记第一篇</center> ## <center>-synchronized与Lock的区别</centre> ###一、从使用场景来说 + synchronized 是能够注释代码块、类、方法但是它的加锁是和解锁使用一......

我不想加班 ⋅ 今天 ⋅ 0

VConsole的使用

手机端控制台打印输出,方便bug的排查。 首先需要引入vconsole.min.js 文件,然后在文件中创造实例。就能直接使用了。 var vConsole = new VConsole(); vConsole的文件地址...

大美琴 ⋅ 今天 ⋅ 0

Java NIO之字符集

1 字符集和编解码的概念 首先,解释一下什么是字符集。顾名思义,就是字符的集合。它的初衷是把现实世界的符号映射为计算机可以理解的字节。比如我创造一个字符集,叫做sex字符集,就包含两个...

士别三日 ⋅ 今天 ⋅ 0

Spring Bean基础

1、Bean之间引用 <!--如果Bean配置在同一个XML文件中,使用local引用--><ref bean="someBean"/><!--如果Bean配置在不同的XML文件中,使用ref引用--><ref local="someBean"/> 其实两种......

霍淇滨 ⋅ 今天 ⋅ 0

05、基于Consul+Upsync+Nginx实现动态负载均衡

1、Consul环境搭建 下载consul_0.7.5_linux_amd64.zip到/usr/local/src目录 cd /usr/local/srcwget https://releases.hashicorp.com/consul/0.7.5/consul_0.7.5_linux_amd64.zip 解压consu......

北岩 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部