如何使用javascript命令运行node.js文件?

时间:2019-07-05 00:46:56

标签: javascript node.js json

我正在尝试制作在线游戏。它不是快节奏的,所以我只需要一个json文件。我对node.js还是很陌生,对此并不十分了解。

我尝试使用以下命令:https://stackabuse.com/reading-and-writing-json-files-with-node-js/,并且我了解如何使用命令行对其进行读写。如何通过OnClick之类的JavaScript事件运行Node js文件?

节点js:

//this code is mostly stolen from the site I linked to.
'use strict';

const fs = require('fs');

let newdata = {"newdata": "this is new!"}  
let data = JSON.stringify(newdata);  
fs.writeFileSync('data.json', data);   

json:

{
   "test": "hello world"
}

html:

<input type="button" value="Click Me!" onclick="
//run the node js file!!!
">

我不知道如何运行该文件。

1 个答案:

答案 0 :(得分:1)

我认为在解决此问题之前,您需要先问问自己自己想获得什么。

  1. 如果您要使服务器在REST API中发送JSON文件,则使用NodeJS的想法是一个好方法,但是您需要让Web服务器在其中运行并在HTML代码上使用$.get命令来获取数据。

  2. 如果您想在本地读取 JSON 文件,则无需使用NodeJS(JS是解决此问题的好方法)

第一个解决方案:

NodeJS代码:

const data = require('/path/to/json/file/data.json')
var path = require('path');
const express = require('express')
const app = express()

app.get('/data', (req, res) => {
    res.json(data)
})

app.get('/', function(req, res) {
    res.sendFile(path.join('/path/to/index/file/index.html'));
});

app.listen('8080')

HTML代码:

<!DOCTYPE html>
<html>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <body>
        <button onclick="myFunction()">Test</button>
    </body>
    <script>
        function myFunction(){
            $.get("http://localhost:8080/data",
                function(data) {
                    alert(JSON.stringify(data));
                }
            );
        }
    </script>
</html>