我正在使用express
运行应用程序。我正在尝试在节点应用程序中使用mongoose
。我已经安装了所有依赖项。
我的html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; connect-src 'self';font-src 'self'; img-src 'self' data: https:; style-src 'self' ; script-src 'self'">
<title>Node application</title>
</head>
<body>
<h1>This is sample page</h1>
<script src="watchData.js"></script>
</body>
</html>
我的app.js
var express = require('express');
var app = express();
//setting middleware
app.use(express.static('public')); //Serves resources from public folder
app.listen(5000);
watchData.js
const mongoose = require('mongoose')
watchData.js
和index.html
在public
文件夹中。我收到以下错误消息
Uncaught ReferenceError: require is not defined
at watchData.js:1
(anonymous) @ watchData.js:1
第1行的const mongoose = require('mongoose')
任何帮助。
答案 0 :(得分:0)
当您尝试在浏览器上运行节点应用程序时,通常会发生此错误。您可以使用名为browserify的工具将节点模块转换为可以在脚本标记中定义的简单脚本。您可以按照以下一些有用的链接进行操作。 NPM官方文档链接: https://www.npmjs.com/package/browserify 影片教学: https://youtu.be/CTAa8IcQh1U
答案 1 :(得分:0)
这里有些概念在客户端和服务器之间的范围不正确。 watchData.js
应该是服务器端节点应用程序的一部分,但应作为客户端(浏览器)尝试并无法作为脚本运行的静态资产来使用。
浏览器无法直接从节点应用程序中调用函数或运行脚本。它可以通过使用express向节点应用程序公开的URL发出HTTP请求来与节点应用程序进行通信。
我建议先进行example app for express,然后在静态内容正常工作后再添加mongoose个查询。