【发布时间】:2020-12-18 10:24:59
【问题描述】:
我可以获取json文件内容并显示对象内容,但是当json文件中包含超过1个对象时,我无法显示json内容。
当我在 database.json 上有超过 1 个对象时它的外观
如果你有解决方案,这里是我的客户端 js 代码
var jsonn = '/database.json';
async function userinfo() {
const response = await fetch(jsonn);
const data = await response.json();
var { username, password, _id } = data;
document.getElementById('user').textContent = username;
JSON.stringify(jsonn);
console.log(data);
console.table (data);
console.log (username);
console.log (_id);
}
userinfo();
这是我的 server.js
var express = require("express");
var app = require("express")();
var http = require("http").Server(app);
var io = require("socket.io")(http);
var port = process.env.PORT || 3000;
var router = require("express");
var fs = require("fs");
var DatasStore = require("nedb");
//test
var batteryLevel = require('battery-level');
var externalip = require('externalip');
//database test
var Database = new DatasStore('database.json');
Database.loadDatabase();
//Database.insert({ "name" : "Rahim", "status" : "Online"});
//Database.insert({ "name" : "Rasko", "status" : "Offline"});
app.post('/new', function (req, res) {
new user({
"name": "username"
, "password": "password"
, "class": "classes"
, "gender": "gender"
});
var usr = (user);
Database.insert(usr);
});
//Accessebale Files//
app.use(express.static("public/chat.html/"));
//console.log(Database);
app.use('/icon', express.static(__dirname + '/public/icon.png'));
app.use('/home', express.static(__dirname + '/public/home.html'));
app.use('/chat', express.static(__dirname + '/public/chat.html'));
app.use('/login', express.static(__dirname + '/public/login.html'));
app.use('/hometest', express.static(__dirname + '/public/hometest1.html'));
app.use('/index.js', express.static(__dirname + '/public/index.js'));
app.use('/database.json', express.static(__dirname + '/public/database.json'));
app.use(express.static(__dirname + "/login.html"));
console.log(__dirname);
app.get("/", function (req, res) {
res.sendFile(__dirname + "/public/login.html");
console.log("users ip ↓");
console.log(req.ip);
Database.insert("{" + "Users-ip:" + req.ip);
});
io.on("connection", function (socket) {
socket.on("chat message", function (msg) {
io.emit("chat message", msg);
});
});
http.listen(port, function () {
console.log("|---------------------------------------------------|");
console.log("|----------------------SERVER-----------------------|");
console.log("|---------------------------------------------------|");
console.log("");
console.log("The Server is Live on PORT : " + port);
console.log(" ")
console.log("");
});
io.on("connection", socket => {
console.log("a user connected");
console.log("------------------------------");
socket.on("disconnect", () => {
console.log("user disconnected");
console.log("----------------------------");
});
});
io.on("connection", socket => {
socket.on("chat message", msg => {
console.log("Sent: " + msg);
Database.insert((msg));
});
});
//testing code
//BatteryLevelLogger//
batteryLevel().then(level => {
console.log(level);
Database.insert(level);
});
///ServerStatus Logger
const https = require('http');
var options = {
host: '192.168.1.102'
, port: 3000
, path: '__dirname'
};
https.get(options, function (res) {
console.log("status: " + res.statusCode);
}).on('error', function (e) {
console.log("error: " + e.message);
});
Database.insert(batteryLevel);
//26august test//
//app.post('/', (request, response) => {
// console.log("requestse");
// app.post();
//});
///LOGIN TEST///
//var dataa = fs.readFileSync("database.json");
//var info = JSON.parse(dataa);
//Database.loadDatabase();
//fs.writeFile("database.json" , info);
//console.log(info);///
////Login///
const Datastore = require('nedb');
app.listen(2000, () => console.log('listening at 3000'));
app.use(express.static('/public'));
app.use(express.json({
limit: '1mb'
}));
const database = new Datastore('public/public/database.json');
database.loadDatabase();
app.post('/public', (request, response) => {
const data = request.body;
const timestamp = Date.now();
data.timestamp = timestamp;
database.insert(data);
response.json(data);
console.log(data);
var logdate = new Date;
console.log(logdate);
});
我真的不想编辑 server.js,因为每个想法都在服务器中工作,我猜是客户端代码应该读取 json 文件“database.json”上的多个对象 再次,如果您有答案,请考虑与我分享。
这里是“带有 2 个对象”的 json 文件:
{"username":"eaz","password":"","email":"eza","timestamp":1598667968928,"_id":"BSA8MsS2dU299vcT"}
{"username":"user","password":"random","email":"emailandom","timestamp":1598667968928,"_id":"BSA8MsS2dU299vcT"}
【问题讨论】:
-
您可以分享解析时出现错误的 JSON 吗?
-
database.json的内容必须是对象数组:[ { ... }, { ... }, ... ] -
我尝试添加 [{content}] 但没有成功
-
当前
database.json文件不包含有效的JSON。 -
是什么造成了差异
标签: javascript html node.js json