nodejs中想要访问根目录同级目录里的文件,开始用__dirname,发现_dirname只是追加自身的目录路径,能调取到同级目录下的文件,却不能调取其他目录下的文件,尝试把文件路径换成相对路径可以访问成功,考虑到项目中不会去层层翻目录,翻了资料nodejs的fs模块大多是结合了nodejs的path模块使用,path.resolve和path.join两个方法能传入文件路径,并且文件不存在时会抛出异常;
分别读取json文件夹下的list.json和server文件夹下的list.json;
var express = require('express')
var app = express()
var fs = require('fs')
var path = require('path')
var mysql = require('mysql')
var cors = require('cors')
let PUBLIC_PATH = path.resolve(__dirname, '../json');
// 设置跨域访问
app.all('*', function (req, res, next) {
res.header('Access-Control-Allow-Origin', '*')
res.header('Access-Control-Allow-Headers', 'X-Requested-Width')
res.header('Access-Control-Allow-Methods', 'PUT,POST,GET,DELETE,OPTIONS')
res.header('X-Powered-By', '3.2.1')
res.header('Content-Type', 'application/json;charset=utf-8')
next()
})
// 读取本地json文件
app.get('/list', function (req, res) {
fs.readFile(__dirname + '/' + 'list.json', 'utf-8', function (err, data) {
console.log('执行服务成功')
res.end(data)
})
})
// 读取json文件夹下的json文件
app.get('/file', function (req, res) {
fs.readFile(PUBLIC_PATH + '/list.json', 'utf-8', function (err, data) {
console.log('读取文件成功')
res.end(data)
})
})
var server = app.listen(3080, function () {
var host = server.address().address
var port = server.address().port
console.log(host, port)
})
最后进入到server文件夹node server.js