我是Nodejs的新手,我想制作类似Weather的应用程序。我的api密钥包含文件pass.txt,我想读取此文件,然后在api端点等待get调用,但是app.get的运行方式就像没有对他的get调用一样。单击按钮后,它是控制台注销我的html 码。我该怎么办才能获取api密钥而不是html代码?
JS代码
const btn = document.querySelector('#btn')
btn.addEventListener('click', e =>{
fetch('/api')
.then(res => res.text())
.then(data =>{
console.log(data)
})
})
nodejs
const http = require('http')
const express = require('express')
const app = express();
const fs = require('fs')
let port = 2932;
console.log('listening on' + port)
const key = fs.readFile('./public/pass.txt', 'utf8', (err,data) =>{
if (err) console.log(err)
app.get('/api', (req,res) =>{
console.log(key)
res.send(data)
})
console.log(data) // console logs the key
})
http.createServer((req,res) =>{
res.writeHead(200, {'Content-type': 'text/html'})
fs.readFile('public/index.html', (error,data) =>{
if(error){
res.writeHead(404)
res.write('Files not found')
}
res.write(data)
res.end()
})
}).listen(port)
答案 0 :(得分:1)
您正在内部readFile回调中注册路由处理程序,而您极有可能需要做相反的事情。同样,也无需使用低级.content-block-container {
align-items: end;
display: flex;
}
.content-block-container img {
border: 5px #fff solid;
margin-right: 30px;
}
.content-block-content {
display: flex;
flex: 1;
flex-direction: column;
}
img {
height: auto;
max-height: 150px;
max-width: 150px;
width: 20%;
}
界面来设置服务器,同时考虑到您拥有<div class="content-block-container">
<img src="https://via.placeholder.com/150">
<div class="content-block-content">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla convallis justo nisl, vel suscipit lectus dignissim
ut. Aenean sed auctor lorem. Suspendisse eget dapibus est, a egestas dolor. Phasellus lobortis non lacus in sodales.
Mauris at est justo. Quisque at risus eu odio lobortis suscipit. Etiam nulla elit, tincidunt feugiat nunc a,
vulputate volutpat lectus. Integer commodo at tellus a tristique. Suspendisse nec sollicitudin sem, non volutpat
neque. Donec maximus nec purus vel fermentum. Mauris eu nulla efficitur, pharetra dolor fringilla, placerat justo.
</p>
<pLorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla convallis justo nisl, vel suscipit lectus dignissim ut.
Aenean sed auctor lorem. Suspendisse eget dapibus est, a egestas dolor. Phasellus lobortis non lacus in sodales.
Mauris at est justo. Quisque at risus eu odio lobortis suscipit. Etiam nulla elit, tincidunt feugiat nunc a,
vulputate volutpat lectus. Integer commodo at tellus a tristique. Suspendisse nec sollicitudin sem, non volutpat
neque. Donec maximus nec purus vel fermentum. Mauris eu nulla efficitur, pharetra dolor fringilla, placerat
justo.</p>
</div>
</div>
:
http