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

資訊專欄INFORMATION COLUMN

nodejs-local-api

Karrdy / 1387人閱讀

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

一、簡述

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

二、實現

實現使用的技術: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();

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

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

// 添加模版必需的三個變量
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
    });
});

// 正常請求的日志
app.use(expressWinston.logger({
    transports: [
        new (winston.transports.Console)({
            json: true,
            colorize: true
        }),
        new winston.transports.File({
            filename: "logs/success.log"
        })
    ]
}));
// 路由
routes(app);
// 錯誤請求的日志
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文件過程中,找到了一個蠻實用的第三方插件lowdb。
讓我們來看看lowdb如果操作json文件數據的:

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...,歡迎指正!

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/82128.html

相關文章

發表評論

0條評論

Karrdy

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<