在本地主机上而不是在VPS服务器上呈现EJS文件

时间:2019-11-19 19:01:48

标签: node.js express ejs vps

我正在使用Node.js和EJS在我的网站上呈现“购物”页面,其中包括购物车和Stripe checkout弹出窗口。它在我的本地主机中完美呈现-但在HostGator托管的实际VPS服务器上,显示“找不到文件”。我将所有内容都迁移到了VPS并更改了名称服务器。

这是我的server.js文件:

if (process.env.NODE_ENV !== "production") {
  require("dotenv").config();
}

const stripeSecretKey = process.env.STRIPE_SECRET_KEY;
const stripePublicKey = process.env.STRIPE_PUBLIC_KEY;
console.log(stripeSecretKey, stripePublicKey);

const express = require("express");
const app = express();
const fs = require("fs");
const stripe = require("stripe")(stripeSecretKey);

app.set("view engine", "ejs");
app.use(express.json());
// app.use(express.static("public"));
// app.set("views", path.join(__dirname, "views"));
app.use(express.static(__dirname));

app.get("/purchase", function(req, res) {
  fs.readFile("items.json", function(error, data) {
    if (error) {
      res.status(500).end();
    } else {
      res.render("purchase.ejs", {
        stripePublicKey: stripePublicKey,
        items: JSON.parse(data)
      });
    }
  });
});

app.post("/process-payment", function(req, res) {
  fs.readFile("items.json", function(error, data) {
    if (error) {
      res.status(500).end();
    } else {
      const itemsJson = JSON.parse(data);
      const itemsArray = itemsJson.wine;
      let total = 0;
      req.body.items.forEach(function(item) {
        const itemJson = itemsArray.find(function(i) {
          return i.id == item.id;
        });
        total = total + itemJson.price * item.quantity;
      });
      stripe.charges
        .create({
          amount: total,
          source: req.body.stripeTokenId,
          currency: "usd"
        })
        .then(function() {
          console.log("Charge Successful");
          res.json({ message: "Your purchase was successful! Thank you." });
        })
        .catch(function() {
          console.log("Charge Failed");
          res.status(500).end();
        });
    }
  });
});
app.listen(3000);

0 个答案:

没有答案