亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用純js將數據從node.js發送到前端

使用純js將數據從node.js發送到前端

函數式編程 2022-05-26 10:24:06
我正在嘗試將帶有數據的對象從 Node.js 服務器發送到 js 文件(用于在前端使用此數據)。在文件main.js 中,我正在操作 DOM。我提出以下要求:let dataName = [];let request = async ('http://localhost:3000/') => {    const response = await fetch(url);    const data = await response.json();    dataName = data.name;}let name = document.getElementById('name');name.textContent = dataName;然后在文件server.js我有一個對象:data = [    {        "id": 1,        "name": "Jhon"    },    {        "id": 2,        "name": "Mike"    }];我想將它作為 json 字符串(或其他方式)發送到main.js作為對我請求的響應。問題:我的數據顯示在瀏覽器的窗口中。我怎么能得到它作為回應?我試過let express = require('express');let app = express();app.use(express.static(`main`));app.get('/', function(req, res){    res.json(data); //also tried to do it through .send, but there data only on window in browser});app.listen(3000);有人可以告訴我要在我的代碼中更改什么或指出我谷歌的方向嗎?(我不想使用模板引擎)。請幫助我 :) 愿你平安。
查看完整描述

2 回答

?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

我認為您正在嘗試在同一個 URL 上提供您的前端和 JSON 數據/。


您需要調整您的服務器代碼如下:


let express = require('express');

let app = express();

app.use(express.static(`main`));

app.get('/api', function(req, res){

    res.json(data); //also tried to do it through .send, but there data only on window in browser

});

app.listen(3000);

現在您的數據將以 JSON 格式從/api. 然后你可以在前端發出如下請求:


let dataName = [];

let request = async () => {

    const response = await fetch('http://localhost:3000/api');

    const data = await response.json();

    dataName = data.name;

}


let name = document.getElementById('name');

name.textContent = dataName;

還有一個問題是url沒有正確定義為參數。我調整了函數以在正確的位置簡單地使用 URL 字符串。


查看完整回答
反對 回復 2022-05-26
?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

您可以創建一個可以使用REST API進行通信的服務器


(假設數據是一個字符串)


客戶:


let data = getSomeDataYouWantToSend()

fetch('/send', {

    method: 'POST',

    headers: {

      'Content-Type': 'text/plain'

    },

    body: data

})

假設您在目錄中有靜態文件,在目錄中/main有 html 文件/views


服務器:


let express = require('express')

let app = express()


app.use(express.static(`${__dirname}/main`))

app.set('views', `${__dirname}/views`)


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

    res.render('index.html')

})


app.post('/send', (req, res) => {

    console.log(req.body) // <- here is your data sent from client frontend

})


app.listen(3000)


查看完整回答
反對 回復 2022-05-26
  • 2 回答
  • 0 關注
  • 294 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號