国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

nodejs-local-api

Karrdy / 1380人閱讀

摘要:一簡述近期,在學(xué)習(xí)期間,由于需要造數(shù)據(jù),想到弄數(shù)據(jù)庫麻煩,就直接用文件代替了,想到不錯(cuò),主要還是,所以就試著寫了寫,嘿嘿,能用。

一、簡述

近期,在學(xué)習(xí)vue期間,由于需要造數(shù)據(jù),想到弄數(shù)據(jù)庫麻煩,就直接用json文件代替了,想到nodejs不錯(cuò),主要還是js,所以就試著寫了寫,嘿嘿,能用。

二、實(shí)現(xiàn)

實(shí)現(xiàn)使用的技術(shù):Nodejs + Express 4.x + ejs + bootstrap.

初始js配置及所需控件:

var path = require("path");
var express = require("express");
var session = require("express-session");
var flash = require("connect-flash");
var config = require("config-lite");
var routes = require("./routes");
var pkg = require("./package");
var winston = require("winston");
var expressWinston = require("express-winston");
var app = express();

// 設(shè)置模版目錄
app.set("views", path.join(__dirname, "views"));
// 設(shè)置模版引擎為ejs
app.set("view engine", "ejs");

// 設(shè)置靜態(tài)文件目錄
app.use(express.static(path.join(__dirname, "public")));
// session 中間件
app.use(session({
    name: config.session.key,   // 設(shè)置 cookie 中保存 session id 的字段名稱
    secret: config.session.secret, // 過設(shè)置 secret 來計(jì)算 hash 值并放在 cookie 中,使產(chǎn)生的 signedCookie 防篡改
    resave: true,    // 強(qiáng)制更新 session
    saveUninitialized: false,    // 設(shè)置為 false,強(qiáng)制創(chuàng)建一個(gè) session,即使用戶未登錄
    cookie: {
        maxAge: config.session.maxAge   // 過期時(shí)間,過期后 cookie 中的 session id 自動(dòng)刪除
    }
}));
// flash 中間件,用來顯示通知
app.use(flash());
// 處理表單及文件上傳的中間件
app.use(require("express-formidable")({
    uploadDir: path.join(__dirname, "public/jsonFile"),// 上傳文件目錄
    keepExtensions: true,// 保留后綴
    encoding: "utf-8"
}));
//設(shè)置模版全局常量
app.locals.global = {
    title: pkg.name,
    description: pkg.description
};

// 添加模版必需的三個(gè)變量
app.use(function (req, res, next) {
    res.locals.user = req.session.user;
    res.locals.success = req.flash("success").toString();
    res.locals.error = req.flash("error").toString();
    next();
})
// error page
app.use(function (err, req, res, next) {
    res.render("error", {
        error: err
    });
});

// 正常請(qǐng)求的日志
app.use(expressWinston.logger({
    transports: [
        new (winston.transports.Console)({
            json: true,
            colorize: true
        }),
        new winston.transports.File({
            filename: "logs/success.log"
        })
    ]
}));
// 路由
routes(app);
// 錯(cuò)誤請(qǐng)求的日志
app.use(expressWinston.errorLogger({
    transports: [
        new winston.transports.Console({
            json: true,
            colorize: true
        }),
        new winston.transports.File({
            filename: "logs/error.log"
        })
    ]
}));

app.listen(config.port, function () {
    console.log(`${pkg.name} listening on port ${config.port}`);
});

在操作json文件過程中,找到了一個(gè)蠻實(shí)用的第三方插件lowdb。
讓我們來看看lowdb如果操作json文件數(shù)據(jù)的:

var low = require("lowdb");
   ...
var db = low(path.join(__dirname, "../data/apilists.json"));
var data = db.get("dataList")
            .find({ key: id })
            .value();

看上去還是比較簡單的...

三、效果展示

代碼可以看我的github分享:https://github.com/zhoou/node...,歡迎指正!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/82128.html

相關(guān)文章

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<