摘要:一簡述近期,在學習期間,由于需要造數據,想到弄數據庫麻煩,就直接用文件代替了,想到不錯,主要還是,所以就試著寫了寫,嘿嘿,能用。
一、簡述
近期,在學習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
閱讀 2910·2021-09-22 15:54
閱讀 1899·2019-08-30 15:53
閱讀 2254·2019-08-29 16:33
閱讀 1430·2019-08-29 12:29
閱讀 1403·2019-08-26 11:41
閱讀 2381·2019-08-26 11:34
閱讀 2969·2019-08-23 16:12
閱讀 1432·2019-08-23 15:56