1. 程式人生 > >vue+vux 仿飛豬app火車票部分(五)---城市列表保存到MongoDB數據庫並且啟用node.js服務

vue+vux 仿飛豬app火車票部分(五)---城市列表保存到MongoDB數據庫並且啟用node.js服務

export ror sco stat mongodb require pre nec 問題

把車站列表保存到數據庫,並且從本地創建服務

node.js創建httpserver

1.搭建基於express的運行環境

全局安裝express-gengerator

cnpm install -g express-gengerator

2.創建express項目,創建了本地服務

express server

生成server目錄,目錄下的bin是可執行文件,運行bin下的www文件啟動服務

node server/bin/www

啟動成功打開瀏覽器localhost:3000

server下的app.js是入口文件

app.js的配置

var createError = require(‘http-errors‘);
var express = require(‘express‘); var path = require(‘path‘); var cookieParser = require(‘cookie-parser‘); var logger = require(‘morgan‘); var ejs = require(‘ejs‘); var index = require(‘./routes/index‘); var users = require(‘./routes/users‘); var stations = require(‘./routes/stations‘); var app = express();
// view engine setup app.set(‘views‘, path.join(__dirname, ‘views‘)); app.engine(‘.html‘,ejs.__express); app.set(‘view engine‘, ‘html‘); 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(‘/‘, index); app.use(‘/users‘, users); app.use(‘/stations‘, stations); // 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;

安裝mongoose

cnpm install mongoose --save

在路由route文件夾下添加stations.js文件

var express = require(‘express‘);
var router = express.Router();
var mongoose = require(‘mongoose‘);
var Stations = require(‘../models/stations‘);

//鏈接mongodb數據庫
mongoose.connect(‘mongodb://127.0.0.1:27017/train‘);

mongoose.connection.on("connected", function(){
    console.log("MongoDB connected success.");
});

mongoose.connection.on("error", function(){
    console.log("MongoDB connected fail.");
});

mongoose.connection.on("disconnected", function(){
    console.log("MongoDB connected disconnected.");
});

router.get("/", function(req,res,next){
    //res.send(‘hello,goods list .‘)
    Stations.find({}, function(err,doc){
        if(err){
            res.json({
                status:‘1‘,
                msg:err.message
            });

        }else{
            res.json({
                status:‘0‘,
                msg:‘‘,
                result:{
                    count:doc.length,
                    list:doc
                }
            })
        }
    })
});

module.exports = router;

server文件夾下新建models文件夾,models下新建stations.js文件

var mongoose = require(‘mongoose‘);
var Schema = mongoose.Schema;

var stationSchema = new Schema({
    "sta_name":String,
    "sta_ename":String,
    "sta_code":String
});

module.exports = mongoose.model(‘Station‘,stationSchema);

最後打開localhost:3000/stations 就可以訪問到車站數據了

可以通過接口訪問加載了,vue裏用axios, 但是這裏會存在跨域問題,在vue項目下的config文件下的index.js更改配置

 proxyTable: {
        ‘/stations‘:{
            target:‘http://localhost:3000‘
        }
},

一系列配置之後就能通過axios愉快的訪問接口啦~

vue+vux 仿飛豬app火車票部分(五)---城市列表保存到MongoDB數據庫並且啟用node.js服務