Javascript JS不';t在txt中写入信息

Javascript JS不';t在txt中写入信息,javascript,Javascript,我是js的新手。所以我安装了node.js 我有:我有一个html文件,可以在浏览器中打开地图。当用户右键单击时,它应该创建txt文件并在其中写入“学习如何在文件中写入”,但它没有 <!DOCTYPE html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <script> L_NO_TOUCH =

我是js的新手。所以我安装了node.js

我有:我有一个html文件,可以在浏览器中打开地图。当用户右键单击时,它应该创建txt文件并在其中写入“学习如何在文件中写入”,但它没有

<!DOCTYPE html>
<head>    
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    <script>
        L_NO_TOUCH = false;
        L_DISABLE_3D = false;
    </script>
    <script src="https://cdn.jsdelivr.net/npm/leaflet@1.5.1/dist/leaflet.js"></script>
    <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.js"></script>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/leaflet@1.5.1/dist/leaflet.css"/>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"/>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css"/>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css"/>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.css"/>
    <link rel="stylesheet" href="https://rawcdn.githack.com/python-visualization/folium/master/folium/templates/leaflet.awesome.rotate.css"/>
    <style>html, body {width: 100%;height: 100%;margin: 0;padding: 0;}</style>
    <style>#map {position:absolute;top:0;bottom:0;right:0;left:0;}</style>
        <meta name="viewport" content="width=device-width,
                initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
        <style>
            #map_fc81479c2a8c4f18ad55baf3c9ba4285 {
                position: relative;
                width: 100.0%;
                height: 100.0%;
                left: 0.0%;
                top: 0.0%;
            }
        </style> 

    <script src="https://requirejs.org/docs/release/2.3.6/minified/require.js"></script>
</head>

<body>    
    <div class="folium-map" id="map_fc81479c2a8c4f18ad55baf3c9ba4285" ></div>    
</body>

<script>    
    var map_fc81479c2a8c4f18ad55baf3c9ba4285 = L.map(
        "map_fc81479c2a8c4f18ad55baf3c9ba4285",
        {
        center: [55.02111, 73.40751],
        crs: L.CRS.EPSG3857,
        zoom: 13,
        zoomControl: true,
        preferCanvas: false,
        }
        );
        var tile_layer_216c8662dc00405dba72c81174fd5845 = L.tileLayer(
            "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
            {"attribution": "Data by \u0026copy; \u003ca href=\"http://openstreetmap.org\"\u003eOpenStreetMap\u003c/a\u003e, under \u003ca href=\"http://www.openstreetmap.org/copyright\"\u003eODbL\u003c/a\u003e.", "detectRetina": false, "maxNativeZoom": 18, "maxZoom": 18, "minZoom": 0, "noWrap": false, "opacity": 1, "subdomains": "abc", "tms": false}
            ).addTo(map_fc81479c2a8c4f18ad55baf3c9ba4285);


    var lat, lng;

    map_fc81479c2a8c4f18ad55baf3c9ba4285.addEventListener('mousemove', function(ev) {
        lat = ev.latlng.lat;
        lng = ev.latlng.lng;
    });

    document.getElementById("map_fc81479c2a8c4f18ad55baf3c9ba4285").addEventListener("contextmenu", function (event) {
    // Prevent the browser's context menu from appearing
    event.preventDefault();
    alert(lat + ' - ' + lng);
    return false; // To disable default popup.
});

// Trying to save to text file
// !!!
// !!!
// !!!
// does not work : 

const fs = require('fs') 

let data = "Learning how to write in a file."

fs.writeFile('Output.txt', data, (err) => {
    if (err) throw err; 
}) 

</script>

L_NO_TOUCH=错误;
L_DISABLE_3D=false;
html,正文{宽度:100%;高度:100%;边距:0;填充:0;}
#映射{位置:绝对;顶部:0;底部:0;右侧:0;左侧:0;}
#地图fc81479c2a8c4f18ad55baf3c9ba4285{
位置:相对位置;
宽度:100.0%;
身高:100.0%;
左:0.0%;
最高:0.0%;
}
var map_fc81479c2a8c4f18ad55baf3c9ba4285=L.map(
“地图fc81479c2a8c4f18ad55baf3c9ba4285”,
{
中间:[55.02111,73.40751],
crs:L.crs.EPSG3857,
缩放:13,
动物控制:对,
答案:错,
}
);
var tile_layer_216c8662dc00405dba72c81174fd5845=L.tileLayer(
“https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png”,
{“属性”:“数据由\u0026copy;u003ca href=\”http://openstreetmap.org\“\u003eOpenStreetMap\u003c/a\u003e,在\u003ca href=\”下”http://www.openstreetmap.org/copyright\“\u003eODbL\u003c/a\u003e.”,“detectRetina”:false,“maxNativeZoom”:18,“maxZoom”:18,“minZoom”:0,“noWrap”:false,“不透明”:1,“子域”:“abc”,“tms”:false}
).addTo(地图fc81479c2a8c4f18ad55baf3c9ba4285);
var lat,液化天然气;
map_fc81479c2a8c4f18ad55baf3c9ba4285.addEventListener('mousemove',函数(ev){
lat=ev.latlng.lat;
lng=ev.latlng.lng;
});
document.getElementById(“map_fc81479c2a8c4f18ad55baf3c9ba4285”)。addEventListener(“contextmenu”,函数(事件){
//防止浏览器的关联菜单出现
event.preventDefault();
警报(纬度+'-'+lng);
返回false;//禁用默认弹出窗口。
});
//正在尝试保存到文本文件
// !!!
// !!!
// !!!
//不起作用:
常量fs=require('fs')
让data=“学习如何写入文件。”
fs.writeFile('Output.txt',data,(err)=>{
如果(错误)抛出错误;
}) 
如果我在浏览器中打开console,它会显示:

85原始值:常数fs=require('fs'))

但如果我运行的代码应该在一个单独的js文件中创建一个文件,它会创建一个好的

当用户右键单击地图时,如何创建文件

编辑1:

添加了脚本,但仍然不起作用

<script src="https://requirejs.org/docs/release/2.3.6/minified/require.js"> 
</script>


JavaScript是一种基于浏览器的web语言。您不能在浏览器环境之外执行任何操作。浏览器不允许访问文件系统和其他模块

这是节点js解决的问题。如果您想使用javascript访问文件系统,我建议您创建一个express web应用程序,使用Node作为后端,允许您写入文件等

请随意使用谷歌节点快递您将在网上获得许多示例


希望这有助于…

可能重复的@SebastianSimon请参见编辑1。我在他们编写代码时添加require.js,但它返回一个错误,包括在哪里?使用
require
的脚本具体在哪里?它不能在
之后,因为这是无效的。无论如何,您都不能从浏览器写入文件。有没有办法创建这样的文件或向其发送文本?在JS无法单独编写txt文件并保存到用户PC之前,您需要用户操作,如“单击下载文件”