express web开发常用代码

处理普通post请求

const bodyParser = require('body-parser');
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({extended: false}));
// parse application/json
app.use(bodyParser.json());
app.post('/',(req,res)=>{
  console.log(req.body);
})

处理session

const session = require('express-session');
app.use(session({
  secret: 'keyboard cat',
  resave: false,
  saveUninitialized: true
}));
app.get('/logincheck',(req,res)=>{
  req.session.login = true;
})
// 中间件
app.use('/admin',(req,res,next)=>{
  if(req.seesion.login){
    next();
  }else{
    res.redirct('/login');
  }
})

上传文件

const fs = require('fs');
const async = require('async');
const multer = require('multer');
const upload = multer({dest: 'uploads/'});
app.post('/upload', upload.single('wangEditorH5File'), function (req, res) {
  async.series([
    function (callback) {
      fs.createReadStream(req.file.path).pipe(fs.createWriteStream('public/imgs/' + req.file.originalname));
      callback(null);
    },
    function (callback) {
      fs.unlink(path.resolve(req.file.path));
      callback(null);
    }
  ], function () {
    res.end('/imgs/' + req.file.originalname);
  });

});

react富文本编辑器组件

<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <link rel="stylesheet" href="/css/wangEditor.min.css">
</head>
<body>
<div id="page"></div>
<script src="js/jquery-2.2.1.js"></script>
<script src="js/wangEditor.js"></script>
<script src="/js/admin.js"></script>
</body>
</html>
const React = require('react');
const ReactDOM = require('react-dom');
class Editor extends React.Component {
  constructor(props) {
    super(props);
    this.getContents = this.getContents.bind(this);
  }

  componentDidMount() {
    this.editor = new window.wangEditor(this.el);
    this.editor.config.uploadImgUrl = '/upload';
    this.editor.create();
    // 初始化内容
    this.editor.$txt.html('<div>this is a a</div>');
  }

  getContents() {
    console.log(this.editor.$txt.html());
  }

  render() {
    return (
      <div>
        <div contentEditable="true" style= ref={(el)=>{this.el = el}}></div>
        <div onClick={this.getContents}>获取内容</div>
      </div>
    );
  }
}
ReactDOM.render(<Editor/>, document.querySelector('#page'));

创建md5

const crypto = require('crypto');
const hash = crypto.createHash('md5');
hash.update('123456');
console.log(hash.digest('hex'));

mysql封装

const mysql = require('mysql');
const pool = mysql.createPool({
  connectionLimit: 1000,
  host: 'localhost',
  user: 'root',
  password: 'root',
  database: 'music'
});
function query(sql, arr, fn) {
  pool.getConnection((err, con)=> {
    con.query(sql, arr, (err, res)=> {
      con.release();
      fn(err, res);
    })
  })
}
module.exports = {
  query: query
};

防止意外退出

process.on('uncaughtException', (ex)=> {
  console.log('error');
});

react项目中使用fetch

// npm install whatwg-fetch --save
// 在html页面中引入whatwg-fetch.js

// fetch上传文件
var input = document.querySelector('input[type="file"]')

var data = new FormData()
data.append('file', input.files[0])
data.append('user', 'hubot')

fetch('/avatars', {
  method: 'POST',
  body: data
})
// fetch提交表单
var form = document.querySelector('form')

fetch('/users', {
  method: 'POST',
  body: new FormData(form)
})
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值