我正在用NodeJS和ExpressJS建立一个区块链客户端-服务器网络。我让服务器成功运行,区块链自己运行。但是我在两者结合上遇到了一些问题。首先,这是我的项目结构:
node_p2p/
node_modules/
...
public/
block.js
client.js
index.html
package-lock.json
package.json
server.js
实际的问题,我有,我想包括block.js
在client.js
文件,但我总是得到参考错误:要求是没有定义
上线,我包含block.js
到client.js
:
var block = require('./block.js');
我已经尝试了以下变体,但是它们都产生了相同的错误(非常预期,因为要求目录是相对于文件调用要求的,但是我还是尝试了它们,以防万一):
var block = require('../public/block.js');
var block = require('../public/block');
var block = require('./public/block.js');
var block = require('./public/block');
var block = require('/public/block.js');
var block = require('/public/block');
var block = require('../block.js');
var block = require('../block');
var block = require('./block.js');
var block = require('./block');
var block = require('block.js');
var block = require('block');
这是块的代码。js
:
const SHA256 = require ('crypto-js/sha256');
class Block{
constructor(...){...}
...
}
class Blockhain{
constructor(...){...}
...
}
module.exports = {
Blockchain: function(){
return new Blockchain();
}
}
其次,客户端。js
:
var socket = io.connect('http://localhost:3000');
var block = require('./block.js');
socket.on('client', showData);
socket.on('clientno', showData);
socket.on('newclient', showData);
function showData(data) {
console.log(data);
}
var nascoin = new block.Blockchain();
最后,服务器。js
:
var express = require('express');
var app = express();
var server = app.listen(3000);
app.use(express.static('public'));
console.log("server running!");
var socket = require('socket.io');
var io = socket(server);
io.sockets.on('connection', newConnection);
var client_counter = 0;
function newConnection(socket) {
console.log('new conn: ' + socket.id);
client_counter++;
socket.emit('client', 'your client name: ' + socket.id);
socket.emit('clientno', 'you are client no.: ' + client_counter);
socket.broadcast.emit('newclient', 'new client has joined the fray');
socket.on('server', function(data) {
console.log(data);
});
}
我甚至不知道我还能做什么,要么就是那么傻,要么就是那么瞎。。。
看起来,你使用client.js
,它附加到index.html
,只是在浏览器中。我建议您将您的client.js
代码与任何bundler捆绑在一起,例如webpack
。它将构建浏览器兼容的代码,您可以在index.html
中使用。浏览器不需要内置的实现。
你得到的错误,
ReferenceError:未定义require
与您试图加载的实际模块不可用无关。这意味着需要的函数根本不可用,就像调用任何未定义的旧函数一样。
> require('./pkdxfjdghbdhfksdh')
Error: Cannot find module './pkdxfjdghbdhfksdh'
如果require
找不到模块,则将是(在节点中)得到的。
你到底是如何运行这段代码的?如果您实际在节点中运行它,例如,节点客户端。js
,不应发生此错误。如果您试图在浏览器中运行东西,则需要像Webpack或Parcel这样的捆绑程序。
我在使用org.apache.commons.io.FileUtils从img目录删除文件时遇到问题。我正在使用以下代码: 实际上,该代码是用来替换img目录中已有的图像文件。我需要删除所有以前存在的文件,名称是n.*,与新文件,例如n.png。如果我试图删除图像文件,我会得到变量成功的false值,并且文件不会被删除。但不包括图像文件,例如*.abc;*.ACD;*.ACDC等被成功删除。这个问
问题内容: 我有一个复选框,可以切换某些行为,但是如果有人连续点击100次,我不想向服务器端发送100个请求。 到目前为止,这就是我所准备的(找到以下代码片段): 在我的文档准备功能中: 然后事件本身: 这是因为我将1500毫秒作为去抖动周期,所以如果您在1500毫秒内单击n次,它将仅向服务器发送最新状态。 但是,使用它会有副作用,现在我的其他事件的click事件被搞砸了。我在这里做错什么了吗?有
我在XML文件中引用XML模式时遇到了这个问题。 我的XSD位于以下路径中: 但是当我试图在我的XML文件中找到这样的模式时,找不到XSD: 找到XSD的唯一方法是将其放在同一文件夹中: 所以问题是:如果XML文件与XSD文件不在同一个文件夹中,路径必须如何查找才能找到XSD? 顺便说一下,我使用的例子来自MSDN:他们声称它应该像我尝试的那样工作。但事实并非如此。
我正在创建一个应用程序,使用Node、Express、ejs和multer上传图像。每次我提交表格时。文件未定义。我花了一整天的时间来排除故障,但却不知道自己做错了什么。 超文本标记语言 app.js
如何正确转换dto到json在Java?我这样做就像下面使用: 问题在于格式化字段。在Dto我有我的日期在这种格式:但转换此dto到json字节后,我看到我的拆分为对象与许多属性如下: 在使用之后,我希望将中的所有属性以与转换之前相同的格式进行转换。如何做到这一点? 谢谢你的帮助!
我试图创建一个Java的应用程序,它可以将文件从Unix Samba共享复制到Windows文件夹。为了实现这一点,我使用JCIFS库。 我有以下代码: 我把它修改为: 但它给了我以下错误: 如果我尝试在Samba共享上创建一个新文件,它将按预期工作: 请帮助解决此问题。