nodejs 点滴
博客专区 > Mrseven 的博客 > 博客详情
nodejs 点滴
Mrseven 发表于2年前
nodejs 点滴
  • 发表于 2年前
  • 阅读 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

 

共有 人打赏支持
粉丝 0
博文 20
码字总数 39044
×
Mrseven
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: