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