Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将mjs文件中的特定数据发送到API服务器?_Javascript_Node.js_Json_Class_Server - Fatal编程技术网

Javascript 如何将mjs文件中的特定数据发送到API服务器?

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到

我有3个文件,分别名为
country.mjs
bridge.mjs
server.js
,用于API。每个
js
文件都是这样相关的:


  • country.mjs
    :有自己的实例。从中传递或接收数据
    bridge.mjs

  • bridge.mjs
    :接收数据或将数据传递给实例。被调用
    country.mjs的内部

  • server.js
    :API


我的目标是将一个特定的数据文件循环到另一个文件。我想发送一个名为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文本,而不是文本的图像。