nodejs fs path读取文件路径问题

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
 
原文地址:https://www.cnblogs.com/zax0927/p/12719606.html