0

我希望能够将一个名为 popmotion 的库加载到我的主页中,该库位于传递给 node/express 的 .ejs 文件中,目前我的文件 popmotion.js 中的代码没有运行,我希望能够控制 dom 元素通过 popmotion.js 在 ejs 文件中提到,我得到控制台错误的引用错误,这表明安装在节点模块中的模块 popmotion 未被识别,我不知道它是否与我的 list.ejs、app.js 或我的文件结构有关或者是其他东西

我的节点文件有这些依赖项

const express = require("express");
const bodyParser = require("body-parser");
const mongoose = require("mongoose");
const _ = require("lodash");
const popmotion = require("popmotion");

const app = express();

app.set('view engine', 'ejs');

app.use(bodyParser.urlencoded({extended: true}));
app.use(express.static("public"));

mongoose.set('useNewUrlParser', true);
mongoose.set('useFindAndModify', false);
mongoose.set('useCreateIndex', true);
mongoose.set('useUnifiedTopology', true);
mongoose.connect("mongodb://localhost:27017/todolistDB");

我的 list.ejs 看起来像这样

<%- include("header") -%>

  <div class="box" id="heading">
    <h1> <%= listTitle %> </h1>
  </div>

  <div id="b"class="box ball">

    <% newListItems.forEach(function(item){ %>
      <form action="/delete" method="post">
       <div class="item">
        <input type="checkbox" name="checkbox" value="<%=item._id%>" onChange="this.form.submit()">
        <p><%=item.name%></p>
       </div>
       <input type="hidden" name="listName" value="<%= listTitle %>"></input>
      </form>
    <% }) %>

      <form class="item" action="/" method="post">
        <input type="text" name="newItem" placeholder="New Item" autocomplete="off">
        <button type="submit" name="list" value="<%= listTitle %>">+</button>
      </form>
  </div>

<%- include("footer") -%>

我还在 express 中包含了一个静态公共文件夹来运行运行 styles.css 和 popmotion.js(我试图在主页上呈现的文件),我的文件结构如下所示文件结构

4

1 回答 1

0

您需要从前端代码加载 popmotion 脚本。因此,在您的 EJS 模板之一中,例如:

<script src="javascripts/popmotion.js"></script>

目前您正在将其作为节点模块加载,当浏览器查看您的渲染模板时,浏览器无法使用该模块。

于 2020-08-10T05:42:00.930 回答