安装环境
忽略安装nodeJs;
安装express:npm install express -g (-S)
;
安装express应用生成器: npm install express-generator -g
(express脚手架工具)
生成项目:express -e ejs yourProjectName
(ejs:模板引擎,yourProjectName:项目名字)
mongodb安装
安装mongodb与下载
LINUX启动服务:./mongod --dbpath ../blog/
express 4.x版本问题
1.session中间件已经不再内置,需要单独引用
var session = require('express-session');
var MongoStore = require('connect-mongo')(session);
app.use(session({
secret: 'foo',
store: new MongoStore(options)
}));
- 修改上步后仍然报错
throw new Error('Connection strategy not found');
app.use(session({
secret: settings.cookieSecret,
key: settings.db,//cookie name
cookie: {maxAge: 1000 * 60 * 60 * 24 * 30},//30 days
resave: false,
saveUninitialized: true,
store: new MongoStore({
/*db: settings.db,
host: settings.host,
port: settings.port*/
url: 'mongodb://localhost/blog'
})
}));
需再MongoStore中添加url属性;
db.js中链接数据库端口问题
var settings = require('../settings'),
Db = require('mongodb').Db,
Connection = require('mongodb').Connection,
Server = require('mongodb').Server;
module.exports = new Db(settings.db, new Server(settings.host, Connection.DEFAULT_PORT, {}));
其中的Connection.DEFAULT_PORT
为数据库服务的默认端口,改成27017,即可;
win中启动mongo服务:
./mongod --config "***\mongo.conf"
||./mongod --config ../mongo.conf
bodyParser中已经不在express中集成,并且bodyParser中已经不再包含上传功能,需要单独安装multer并引用,index.js中的示例:
var multer = require('multer');
var upload = multer({dest:'../public/uploads/'}); //定义文件上传的位置
router.post('/upload',upload.any(), function (req, res, next) {
for (var i in req.files) {
if (req.files[i].size == 0) {
//使用同步方式删除一个文件
fs.unlinkSync(req.files[i].path);
console.log('Successfully removed an empty file!')
}else{
var target_path= './public/images/' + req.files[i].originalname;
// 使用同步方式重命名一个文件
fs.renameSync(req.files[i].path,target_path);
console.log('Successfully renamedafile!');
}
}
req.flash('success','文件上传成功!');
res.redirect('/upload');
});
其中multer基于 bodyParser开发,所以需要再其后引用;
upload.any()
再api中有多种方法,对应使用!
——————————————————————————————————————————————
mongo 的部分操作:
- use blog; //使用blog数据库;
- show dbs; //显示数据库;
- show tables; //显示表格;
- db.tables.find(); //查找tables所有数据;
- db.tables.findOne(); //查询一条数据;
- db.tables.remove({}); //删除表格所有数据;
网友评论