node.js - router.getAll未定义的不是一个函数?
怪我咯
怪我咯 2017-04-17 13:14:30
0
0
368

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 bodyParser = require('body-parser');
var session = require('express-session');
var MongoStore = require('connect-mongo')(session);
var multer = require('multer');

var routes = require('./routes/index');
var settings = require('./settings');
var flash = require('connect-flash');
var users = require('./routes/users');

var app = express();//生成一个express实例 app

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'html');
app.use(flash());
app.engine('.html', require('ejs').__express);

// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use(session({
resave: false,
saveUninitialized: true,
secret: settings.cookieSecret,
key: settings.db,//cookie name
cookie: {maxAge: 100060602430},//30 days
store: new MongoStore({

url: 'mongodb://localhost/blog', db: settings.db, host: settings.host, port: settings.port

})
}));
app.use(multer({
dest: './public/images',
rename: function (fieldname, filename) {

return filename;

}
}));

app.use('/', routes);//加载路由
app.use('/users', users);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});

// error handlers

// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
app.use(function(err, req, res, next) {

res.status(err.status || 500); res.render('error', { message: err.message, error: err });

});
}

// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {

message: err.message, error: {}

});
});

module.exports = app;//导出app实例供其他模块调用

index.js
var crypto = require('crypto'),

User = require('../models/user.js'); Post = require('../models/post.js');

var express = require('express');
var router = express.Router();

/GET index page./
router.getAll('/', function (req, res) {

Post.get(null, function (err, posts) { if (err) { posts = []; } res.render('index', { title: '主页', user: req.session.user, posts: posts, success: req.flash('success').toString(), error: req.flash('error').toString() });

});
});

router.get('/reg', checkNotLogin);
router.get('/reg', function (req, res) {
res.render('reg', {

title: '注册', user: req.session.user, success: req.flash('success').toString(), error: req.flash('error').toString()

});
});

router.post('/reg', checkNotLogin);
router.post('/reg', function (req, res) {

var name = req.body.name, password = req.body.password, password_re = req.body['password-repeat']; if (password_re != password) { req.flash('error', '两次输入的密码不一致!'); return res.redirect('/reg'); } var md5 = crypto.createHash('md5'), password = md5.update(req.body.password).digest('hex'); var newUser = new User({ name: name, password: password, email: req.body.email }); User.get(newUser.name, function (err, user) { if (err) { req.flash('error', err); return res.redirect('/'); } if (user) { req.flash('error', '用户已存在!'); return res.redirect('/reg'); } newUser.save(function (err, user) { if (err) { req.flash('error', err); return res.redirect('/reg'); } req.session.user = user; req.flash('success', '注册成功!'); res.redirect('/'); }); }); });

router.get('/login', checkNotLogin);
router.get('/login', function (req, res) {
res.render('login', {

title: '登录', user: req.session.user, success: req.flash('success').toString(), error: req.flash('error').toString()});

});

router.post('/login', checkNotLogin);
router.post('/login', function (req, res) {
var md5 = crypto.createHash('md5'),

password = md5.update(req.body.password).digest('hex'); User.get(req.body.name, function (err, user) { if (!user) { req.flash('error', '用户不存在!'); return res.redirect('/login'); } if (user.password != password) { req.flash('error', '密码错误!'); return res.redirect('/login'); } req.session.user = user; req.flash('success', '登录成功!'); res.redirect('/') });

});

router.get('/post', checkLogin);
router.get('/post', function (req, res) {
res.render('post', {

title: '发表', user: req.session.user, success: req.flash('success').toString(), error: req.flash('error').toString() });

});

router.post('/post', checkLogin);
router.post('/post', function (req, res) {

var currentUser = req.session.user, post = new Post(currentUser.name, req.body.title, req.body.post); post.save(function (err) { if (err) { req.flash('error', err); return res.redirect('/'); } req.flash('success', '发布成功!'); res.redirect('/'); });

});

router.get('/logout', checkLogin);
router.get('/logout', function (req, res) {
req.session.user = null;
req.flash('success', '退出成功!');
res.redirect('/');
});

router.get('/upload', checkLogin);
router.get('/upload', function (req, res) {
res.render('upload', {

title: '文件上传', user: req.session.user, success: req.flash('success').toString(), error: req.flash('error').toString()

});
});

router.post('/upload', checkLogin);
router.post('/upload', function (req, res) {
req.flash('success', '文件上传成功!');
res.redirect('/upload');
})

router.get('/u/:name', function (req, res) {
User.get(req.params.name, function (err, user) {

if (!user) { req.flash('error', '用户不存在!'); return res.redirect('/'); } Post.getAll(user.name, function (err, posts) { if (err) { req.flash('error', err); return res.redirect('/'); } res.render('user', { title: user.name, posts: posts, user: req.session.user, success: req.flash('success').toString(), error: req.flash('error').toString() }); });

});
});

function checkLogin(req, res, next) {
if (!req.session.user) {

req.flash('error', '未登录!'); res.redirect('/login');

}
next();
}

function checkNotLogin(req, res, next) {
if (req.session.user) {

req.flash('error', '已登录!'); res.redirect('back');

}
next();
}

module.exports = router;

怪我咯
怪我咯

走同样的路,发现不同的人生

모든 응답 (0)
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!