我有一个index.js文件,用于将数据从表单导入MongoDB
const express = require("express");
const app = express();
const mongoose = require("mongoose");
const bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({extended: true}));
mongoose.connect("mongodb+srv://", { useNewUrlParser: true}, {useUnifieldTopology: true})
// create a data schema
const dataSchema = {
doc: String,
email: String,
feedback: String
}
const info = mongoose.model("Info", dataSchema);
app.get("/", function(req, res) {
res.sendFile(__dirname + "/index.html")
})
app.post("/", function(req, res) {
let newinfo = new info({
doc: $('#fileid').val(), //doc_val, //req.body.file,
email: $("#emailid").val(), //email_val, //req.body.email,
feedback: $("#feedback").val() //req.body.feedback
});
newinfo.save();
})
//app.post
app.listen(3000, function() {
console.log("server is running on 3000")
})
但不断得到Uncaught ReferenceError: require is not defined
错误,我已经尝试:
1.从package.json中删除{ "Type": "module"}
,它不起作用,得到相同的错误
1.使用import express from 'express';
代替require
,但获得Uncaught SyntaxError: Cannot use import statement outside a module
1.将<script type="module" src="node_modules/express/index.js"></script>
添加到index.html,仍然无法工作
1.将<script type="module" src="./script.js"></script>
添加到index.html以将import { express } from './node_modules/express/index.js';
存储到script.js
1.添加webPreferences: { nodeIntegration: true; contextIsolation: false}
后,这个也不起作用
我的index.html上的表单也连接到flask应用程序,因此index.js还包括其他功能。
任何建议将不胜感激!
1条答案
按热度按时间3duebb1j1#
您尝试做的事情是不可能的,这是一个后端Node.js应用程序(与Python + Flask相同)
Node.js是一个与浏览器不同的JavaScript运行时。请在以下位置阅读更多信息:https://nodejs.dev/en/learn/differences-between-nodejs-and-the-browser/
我建议您阅读更多关于Node.js的内容,或者看看如何在Flask后端公开一个端点以接收表单中的数据,以及如何将其保存在MongoDB上(您可以从以下教程开始:https://www.digitalocean.com/community/tutorials/how-to-use-mongodb-in-a-flask-application)