簡體   English   中英

使用 node.js 編輯和創建 HTML 內容

[英]Edit and create HTML content using node.js

我想使用node.js創建看起來像這樣的 html 內容。

<div class="outputs">
   ...
</div>

我有以下代碼:

var mongoose = require("mongoose");
var express = require("express");
var bodyParser = require("body-parser");
var Url = require("./models/Url");
var shortId = require("shortid");
var http = require("http");
var app = express();
var { JSDOM } = jsdom;

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
mongoose.connect(process.env.MLAB_URI);

app.get("/urls", (req, res, next) => {
  Url.find({}, function(err, data) {
    res.json(data);
    console.log(data.length);
  });
});

app.get("/deletebase", (req, res, next) => {
  Url.deleteMany({}, function(err, data) {
    res.json(data);
  });
});

app.use(express.static(__dirname + "/"));

app.get("/:shortUrl", function(req, res, next) {
  Url.findOne({ shortUrl: req.params.shortUrl }, function(err, findUrl) {
    if (err) console.log(err);
    if (!findUrl) {
      return next({ status: 400, message: "unknown shorturl" });
    }
    res.redirect(findUrl.longUrl);
  });
});

app.post("/", function(req, res) {
  var url = new Url(req.body);
  var hostname = req.headers.host;
  var expression = /[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)?/gi;
  var regex = expression;
  if (regex.test(url) === true) {
    url.shortUrl = shortId.generate();
    url.fullUrl = "https://" + hostname + "/" + url.shortUrl;
    url.save(function(err, savedUrl) {
      if (err) console.log(err);
      res.redirect("https://" + hostname);
    });
  } else {
    res.redirect("https://" + hostname);
  }
});

var options = {
  runScripts: "dangerously",
  resources: "usable"
};

app.listen(3000, function() {
  console.log("RUNNING");
});

我想獲取數據的長度並創建許多包含longUrlshortUrl對象的 div 對象。 另外,當數據庫將被更新時,應該創建新的 div 對象,當我刪除數據庫信息時,所有的 div 元素也應該被刪除,這可能嗎?

您應該為此使用模板引擎,Node.js 的兩個最流行的引擎是pug(以前的 Jade)hbs(Handlebars.js)

還有很多其他的模板引擎在這里,你可以考慮一下。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM