express连接数据库、上传图片总结
来源:互联网 发布:国家授时中心网络时间 编辑:程序博客网 时间:2024/05/22 16:43
1、app.js代码
var express = require('express');var path = require('path');var favicon = require('serve-favicon');var logger = require('morgan');var cookieParser = require('cookie-parser');var session = require('express-session');var bodyParser = require('body-parser');var ejs = require('ejs');//数据库操作var MongoClient = require('mongodb').MongoClient;var DbUrl = 'mongodb://127.0.0.1:27017/productmanage';/*连接数据库*/// 文件上传var multiparty = require('multiparty');// 数据库操作var DB=require('./routes/db');// 业务模块引入var index = require('./routes/index');var users = require('./routes/users');var login = require('./routes/login/login');var product = require('./routes/product/product');// 实例化var app = express();// 设置模板引擎app.set('views', path.join(__dirname, 'views'));// 注册 html 模板引擎代码如下:app.engine('html', ejs.__express);app.set('view engine', 'html');app.use(logger('dev'));app.use(bodyParser.json());app.use(bodyParser.urlencoded({extended: false}));app.use(cookieParser());// 设置sessionapp.use(session({ secret: '12345', name: 'hahaha', cookie: {maxAge: 60000}, resave: false, saveUninitialized: true}));// 静态资源路径app.use(express.static(path.join(__dirname, 'public')));// 上传图片路径app.use('/upload', express.static('upload'));// 路由模块app.get('/', function (req, res) { console.log("index"); res.send('index');});app.get('/login', function (req, res) { res.render('login/login');});// 登录接口app.post('/login', function (req, res) { // 获取登录入参 var username = req.body.username; var password = req.body.password; console.log("username:" + username); console.log("password:" + password); //1.获取数据 //2.连接数据库查询数据 MongoClient.connect(DbUrl, function (err, db) { if (err) { console.log(err); return; } var result = db.collection('user').find(req.body); //另一种遍历数据的方法 result.toArray(function (err, data) { console.log(data); if (data.length > 0) { console.log('登录成功'); //保存用户信息 req.session.userinfo = data[0]; res.redirect('/product'); /*登录成功跳转到商品列表*/ } else { //console.log('登录失败'); res.send("<script>alert('登录失败');location.href='/login'</script>"); } db.close(); }) })});app.get('/product', function (req, res) { var username = req.session.userInfo.username; var password = req.session.userInfo.password; res.send("已经进入商品页面---》你好:" + username + " " + password); // res.render('product/product');});//获取表单提交的数据 以及post过来的图片app.post('/uploadImage', function (req, res) { //获取表单的数据 以及post过来的图片 var form = new multiparty.Form(); form.uploadDir = 'upload'; //上传图片保存的地址 目录必须存在 form.parse(req, function (err, fields, files) { //获取提交的数据以及图片上传成功返回的图片信息 console.log(fields); // 获取表单的数据 console.log(files); // 图片上传成功返回的信息 var title = fields.title[0]; var price = fields.price[0]; var fee = fields.fee[0]; var description = fields.description[0]; var pic = files.pic[0].path; DB.insert('product', { title: title, price: price, fee: fee, description: description, pic: pic }, function (err, data) { if (!err) { res.send("商品数据库插入成功!!!"); /*上传成功跳转到首页*/ } }) });});// 404处理app.use(function (req, res, next) { var err = new Error('Not Found'); err.status = 404; next(err);});// 错误处理app.use(function (err, req, res, next) { res.locals.message = err.message; res.locals.error = req.app.get('env') === 'development' ? err : {}; res.status(err.status || 500); res.render('error');});module.exports = app;2、测试页面代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head> <title></title></head><body><h2>登录页面</h2><form action="/uploadImage" method="post" enctype="multipart/form-data"> 商品名称: <input type="text" name="title"/><br/><br/> 商品图片: <input type="file" name="pic"/><br/><br/> 商品价格: <input type="text" name="price"/><br/><br/> 商品邮费: <input type="text" name="fee"/><br/><br/> 商品描述: <textarea name="description" id="" cols="60" rows="8"></textarea> <input type="submit" value="登录"/></form></body></html>3、数据库连接代码
var MongoClient = require('mongodb').MongoClient;var DbUrl = 'mongodb://localhost:27017/productmanage';/*连接数据库*/var ObjectID = require('mongodb').ObjectID;function __connectDb(callback) { MongoClient.connect(DbUrl, function (err, db) { if (err) { console.log('数据库连接失败'); return; } //增加 修改 删除 callback(db); })}//暴露 ObjectIDexports.ObjectID = ObjectID;//数据库查找/* Db.find('user',{},function(err,data){ data数据 }) */exports.find = function (collectionname, json, callback) { __connectDb(function (db) { var result = db.collection(collectionname).find(json); result.toArray(function (error, data) { db.close(); /*关闭数据库连接*/ callback(error, data); /*拿到数据执行回调函数*/ }) })}//增加数据exports.insert = function (collectionname, json, callback) { __connectDb(function (db) { db.collection(collectionname).insertOne(json, function (error, data) { callback(error, data); }) })}//增加数据exports.update = function (collectionname, json1, json2, callback) { __connectDb(function (db) { db.collection(collectionname).updateOne(json1, {$set: json2}, function (error, data) { callback(error, data); }) })}//删除数据exports.deleteOne = function (collectionname, json, callback) { __connectDb(function (db) { db.collection(collectionname).deleteOne(json, function (error, data) { callback(error, data); }) })}
阅读全文
0 0
- express连接数据库、上传图片总结
- 图片上传数据库的总结
- 图片上传数据库的总结
- nodejs + express + 上传图片功能
- nodejs(express)处理图片上传
- Express+layui上传图片到七牛云
- 图片上传到数据库的总结
- 图片上传到数据库的总结
- 图片上传到数据库的总结
- 图片上传到数据库的总结
- 图片上传到数据库的总结
- 图片上传处理连接
- 图片上传到数据库的总结 (转)
- freetds连接sql server express数据库
- SQL Express数据库的连接问题
- node.js+express连接mongodb数据库
- VisualStudio 2008连接SQLServer 2005 Express数据库
- VisualStudio 2008连接SQLServer 2005 Express数据库
- solr7搭建搜索服务
- 【C语言】求取第n个斐波那契数的时间复杂度、空间复杂度分析,用三种方式实现(普通递归,循环,优化递归)
- mybatis foreach 出现 there is no getter for property named '__frch_item_0' in 'class
- python-set()集合操作(创建、添加、删除、交集、并集、差集、对称差集)
- 幸运大奖
- express连接数据库、上传图片总结
- mysql 5.7 Transparent PageIO Compression
- 2017哈理工低年级组院赛初赛 D-逃脱 【一个贼墨迹的bfs】
- Surf特征点检测
- 资源之访问Resource(三)
- 分布式缓存Redis之Java客户端
- 输出菱形图案的非对偶做法
- netfilter/iptables全攻略
- 生产者消费者问题条件变量实现