var createError = require('http-errors'); var express = require('express'); var path = require('path'); var cookieParser = require('cookie-parser'); var logger = require('morgan'); var cors = require('cors'); var indexRouter = require('./routes/index'); var app = express(); // 导入env require("dotenv").config(); // 使用evn文件保存的mongodb username和password const dbUsername = process.env.DB_USERNAME; const dbPassword = process.env.DB_PASSWORD; // mongoose连接mongodb const mongoose = require("mongoose"); const mongoDBUrl = `mongodb://${dbUsername}:${dbPassword}@47.106.93.245:27017/customapi?authSource=admin`; mongoose.connect(mongoDBUrl); const db = mongoose.connection; db.on("connected", () => console.log("MongoDB 连接成功")); db.on("error", err => console.error(err, "\nMongoDB 连接错误")); db.on("close", () => console.log("\nMongoDB 连接关闭")); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); app.use(cors()); app.use(logger('dev')); app.use(express.json()); app.use(express.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); app.use('/', indexRouter); // catch 404 and forward to error handler app.use(function (req, res, next) { next(createError(404)); }); // error handler app.use(function (err, req, res, next) { // set locals, only providing error in development res.locals.message = err.message; res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page res.status(err.status || 500); res.render('error'); }); module.exports = app;