在app.js中需要错误

我最近开始编写一个用nodejs编写的新游戏,由于某种原因,它不允许我在app.js中使用require,我知道它是可能的,因为我做了其他类似的游戏

这是我在网站上的控制台收到的错误Uncaught ReferenceError: require is not defined at app.js:2

这也是它的代码

 var socket; var pg = require('pg'); var config = require('../../config.json'); var conString = config.database.uri; var client = new pg.Client(conString); client.connect(); 

这个错误是从运行我的代码的其余部分,即时通讯几乎可以肯定,这条线

var config = require('../../config.json');

在我修正第一个问题后也会产生一个错误

根据webpack npm和我所有其他项目做"build": "webpack"应该允许要求在app.js但它不工作

这是我的package.json

 { "name": "CodingIdleMasters", "version": "0.0.1", "description": "Placeholder", "main": "server/server.js", "scripts": { "build": "webpack", "start": "node server/server.js" }, "author": "FlamingGenius", "contributors": [ "Joseph Williamson <deathcrow4561@gmail.com> (https://github.com/FlamingGenius)" ], "dependencies": { "express": "^4.13.4", "socket.io": "^1.4.6", "socket.io-client": "^1.4.6", "webpack": "^1.13.1", "webpack-stream": "^3.2.0", "pg": "^1.0.0" } } 

这里是一个链接到github上的项目,以防你需要看到更多的代码Github项目

如果它有助于inheritance我当前的层次结构

 -client -css -main.css -js -app.js -game.js -menu.js -index.html -server -server.js -config.json -package.json 

编辑:

它似乎我需要的webpackconfiguration,但文件arnt真正有助于解释如何设置这个,如果任何人可以提供一个答案解释如何设置它,可能提供一些代码,这将是非常有用的

require是用于NodeJS而不是在浏览器上。

但是,有方法可以使浏览器中的模块导入function正常工作。 如前所述,WebPack是这样做的一种方式。 设置WebPack需要的不仅仅是将行添加到package.json并安装文件 – 您将需要一个configuration文件和适当的构build: https : //webpack.js.org/guides/

首先,确保package.json具有正确的依赖关系(在本例中为pg ),并且已经安装(检查node_modules目录)。

假设现在你想要的只是加载JavaScript模块,你可以使用下面的configuration文件(webpack.config.js):

 const path = require('path'); module.exports = { entry: { app: './client/app.js', game: './client/game.js', menu: './client/menu.js', }, context: path.resolve(__dirname, '.'), devtool: 'source-map', target: 'web', resolve: { extensions: ['.js'], modules: [path.resolve(__dirname, 'client'), 'node_modules'] }, resolveLoader: { modules: ['node_modules'] }, output: { filename: '[name].js', path: path.resolve(__dirname, 'client', 'dist') // output into /client/dist } }; 

这将采取您的每个文件,捆绑脚本及其依赖关系,以便它能正常工作。 使用webpack --config webpack.config.js运行它。 我已经给了你一个非常简单的configuration – 在一个真实的用例中,可能会将所有主文件打包到一个包中,而不是为每个脚本文件都包含一个包。 WebPack是一个非常强大的工具,你可以扩大你的使用范围,但是我不知道你有什么确切的设置(WebPack指南有大量的信息)。

话虽如此,从客户端连接到数据库可能是可能的,但它当然不build议。 首先, pg包是专门为在NodeJS上使用而devise的。 其次,数据库连接应该总是由你的服务器来处理,客户端只能和服务器交互。 看看你的服务器,你现在只是在服务于内容而不做任何事情 – 所有你想要在客户端上用数据库做的事情都应该被卸载到服务器上。