【发布时间】:2018-08-29 05:03:03
【问题描述】:
我有一个关于使用 Node JS、AJAX 等的问题。我正在尝试让 JSON 文件内容出现在我的 HTML 页面中。我可以将新对象保存到我的 JSON 文件中,但我似乎找不到将它们放入所需 HTML 页面的好方法。到目前为止,这是我的代码。
//Vai buscar a express library para utilização do servidor local;
var express = require("express");
//app vai ouvir requests de HTTP
var app = express();
//Require do body parser
var bodyParser = require('body-parser')
//fs requirement - para json
var fs = require("fs")
//Tem que se definir isto se quisermos ter directorias,assim nao precisamos de meter o caminho absoluto todas as vezes
app.use(express.static('public'))
//Utilização do express do bodyParser
app.use(bodyParser.urlencoded({extended: false}))
app.use(bodyParser.json())
//
//Mandar o fs ler o ficheiro (transformar em JSON), e depois converter o JSON para uma variável para que possa ser utilizada
var fsRead = fs.readFileSync("alunos.json")
var alunos = JSON.parse(fsRead)
//Aqui vai ou direccionar para um página,atraves do send file do res, ou imprimir mensagens com o send
app.get("/", function (req, res) {
res.sendfile("/public/index.html");
});
//GET da criação de um novo aluno.
app.get('/formulario_get', function(req, res) {
var response = {
nome:"ola", //com o GET os parâmetros vêm por querystring
morada:"morada"
};
console.log(response);
res.send(JSON.stringify(response));
})
//POST do formulário do aluno
//app.post("no formulário, na parte do action, meter aqui o nome para o servidor saber qual o pedido feito")
app.post('/processarFormulario', function(req, res, next){
var aluno = {
numero: req.body.numero,
nome: req.body.nome,
morada: req.body.morada,
notafinal: req.body.notafinal
}
alunos.push(aluno)
console.log(alunos)
res.redirect("index.html")
});
//vai imprimir para a consola em que port está a ouvir
var server = app.listen(8081, function () {
console.log(alunos)
console.log("Example app listening at http://%s:%s", server.address().address, server.address().port)
});
这是服务器 atm(对不起,变量和 cmets 是葡萄牙语,这是用于学校目的)
为英语目的更新了代码(也去掉了葡萄牙语 cmets)
var express = require("express");
var app = express();
var bodyParser = require('body-parser')
var fs = require("fs")
app.use(express.static('public'))
app.use(bodyParser.urlencoded({extended: false}))
app.use(bodyParser.json())
var fsRead = fs.readFileSync("alunos.json")
var students = JSON.parse(fsRead)
app.get("/", function (req, res) {
res.sendfile("/public/index.html");
});
app.get('/formulario_get', function(req, res) {
var response = {
name:"ola", //com o GET os parâmetros vêm por querystring
address:"morada"
};
console.log(response);
res.send(JSON.stringify(response));
})
app.post('/processarFormulario', function(req, res, next){
var student = {
number: req.body.number,
name: req.body.name,
address: req.body.address,
grade: req.body.grade
}
students.push(student)
console.log(students)
res.redirect("index.html")
});
var server = app.listen(8081, function () {
console.log(students)
console.log("Example app listening at http://%s:%s", server.address().address, server.address().port)
});
【问题讨论】:
-
你能把你的一些变量名和 cmets 翻译成英文吗?这对你有很大帮助:-)
-
鉴于您使用的是 express,为什么不使用像
pug这样的模板引擎呢?查看expressjs.com/en/guide/using-template-engines.html -
我用英文变量更新了代码
标签: javascript html json node.js