Javascript 如何将mjs文件中的特定数据发送到API服务器?
我有3个文件,分别名为Javascript 如何将mjs文件中的特定数据发送到API服务器?,javascript,node.js,json,class,server,Javascript,Node.js,Json,Class,Server,我有3个文件,分别名为country.mjs、bridge.mjs和server.js,用于API。每个js文件都是这样相关的: country.mjs:有自己的实例。从中传递或接收数据 bridge.mjs bridge.mjs:接收数据或将数据传递给实例。被调用 country.mjs的内部 server.js:API 我的目标是将一个特定的数据文件循环到另一个文件。我想发送一个名为this的特定数据。将传递给服务器,并作为新数据从服务器返回 问题是,当我尝试发送this.pass到
country.mjs
、bridge.mjs
和server.js
,用于API。每个js
文件都是这样相关的:
:有自己的实例。从中传递或接收数据country.mjs
bridge.mjs
:接收数据或将数据传递给实例。被调用bridge.mjs
country.mjs的内部
:APIserver.js
我的目标是将一个特定的数据文件循环到另一个文件。我想发送一个名为this的特定数据。将传递给服务器,并作为新数据从服务器返回 问题是,当我尝试发送
this.pass
到API时,服务器会给出一个错误undefined
,如下所示:
未定义:1
导出默认类桥{^
SyntaxError:JSON中位于位置0的意外标记e
我知道出错的原因是服务器一直试图读取整个文件,bridge.mjs
我一直在寻找在类语法中获得特定数据的方法,但找不到任何信息
是否有合适的解决方案将此消息发送给API
请查看代码块:
// country.mjs
import Bridge from './bridge.mjs';
class Country {
constructor(name, capital, season, input) {
this.name = name;
this.capital = capital;
this.season = season;
this.input = input || new Bridge(this);
}
}
let country = new Country('United State', 'New York', 'Autumn');
// bridge.mjs
export default class Bridge {
constructor(output) {
this.output = output;
this.strings = JSON.stringify(this.output);
this.pass = JSON.parse(this.strings); // Want to send this variable to an server.js.
console.log(this.output, this.pass);
}
}
// server.js
var express = require('express'),
fs = require('fs'),
buffer = fs.readFileSync('website/js/bridge.mjs'),
storage = JSON.parse(buffer); // Gives an error
console.log(storage); // Gives an error
var app = express(),
server = app.listen(3000, initialize);
function initialize() {
console.log("Local Host Initialized.");
}
app.use(express.static('website'));
很好,数据类型不是JSON
。如果我可以招募或使用forEach()
、map()
或reduce()
检索数据,任何类型的数据都可以
谢谢收听。所以,bridge.mjs是一个Javascript文件,但您试图读取它并用JSON.parse()
解析它。Javascript不是JSON,它们是不同的格式。因此,您不能调用JSON.parse()
在Javascript文件上。如果要在bridge.mjs中运行该Javascript,请使用导入
。没有任何值。请传递
,直到有人从该文件加载了代码并创建了一个bridge对象。然后,也只有在那时,您才能从该bridge对象获得.pass
属性。@jfriend00谢谢o注释,但是如果我传递this.pass
作为数组或对象而不是JSON呢?我是否仍然应该使用import
关键字并创建Bridge
的特定实例?是否没有办法从Bridge.mjs
获取this.pass
并将其发送到服务器?您似乎对Javascript文件是。bridge.mjs中没有这个.pass
。有一些代码描述了桥对象的工作方式。一旦加载了这些代码,有人可以创建桥对象,当他们创建桥对象时,他们会向构造函数传递一个值,该值将存储在该对象的.pass
属性中。但是,在此之前e被加载,有人创建了一个Bridge对象,没有.pass
属性。所以,你所要求的对我来说似乎毫无意义,因为你所要求的东西根本不起作用。也许你应该后退几步,解释一下你要解决的总体问题是什么以文本形式出租post文本,而不是文本的图像。