前言

NodeJs是一个能让前端开发工程师变成全栈工程师的神器。最近在搞一个私活,需要上传图片到服务器存储。按照以前的想法,是用Java写代码搭服务器。奈何,大学毕业后就一直在搞前端和安卓开发。Java写服务端的技术已经忘得差不多了。好在JS功底还不错,于是乎想到了用JS写服务端代码。这自然就和node离不开了。图片上传涉及到静态资源服务器的建立。经过摸索,使用express搭建静态资源服务器,很简单,但是坑也很多。下面就来讲讲我的填坑之旅。

一、创建一个空项目

前提你要安装了node的环境

1、初始化项目

新建一个空的文件夹,然后cd到这个目录,运行cmd命令:

npm init

这一步的作用主要是生成package.json这个配置文件

2、安装express依赖

npm i express --save

我这里加了–save指令,这样可以将express依赖信息保存在package.json文件里面。也建议这样做。
安装完成后,会在根目录生成node_module文件夹。至此,我们所需要的环境就准备好了。

二、编写服务器脚本

我习惯先新建一个src目录,然后将源代码写在里面。服务器运行脚本,我命名为server.js。然后,我在根目录建立一个resource目录,用来存放静态资源。所以,我的项目结构是这样的:

下面来编写server.js代码:

const express = require('express')
const server = express()const startServer = () => {server.use(express.static('resource')) //设置静态资源访问目录server.listen(1085, '127.0.0.1', () => {console.log(`服务已经启动:http://127.0.0.1:1085`)})
}module.exports = { startServer }

很简单的几行代码。然后我将启动方式单独导出了。接着在main.js中引入,然后调用:

const { startServer } = require('./src/server')startServer()

这时候,我们用node指令运行这个main.js就能启动服务器了:


我们只需要在浏览器输入:

http://127.0.0.1:1085/test.png

就能访问到这张图片:

思考

1、如果目录非一级目录,比如只是resource里面的more目录,该怎么写?


这个时候,我们就修改一下server.js的脚本,

const express = require('express')
const server = express()const startServer = () => {server.use(express.static('./resource/more')) //设置静态资源访问目录server.listen(1085, '127.0.0.1', () => {console.log(`服务已经启动:http://127.0.0.1:1085`)})
}module.exports = { startServer }

再访问:

http://127.0.0.1:1085/test.png


会报访问不到。这是正确的。
然后我们访问more目录下的文件:

http://127.0.0.1:1085/airfrozen.png


成功了!

express会将http://127.0.0.1:1085/转发为你项目里面设置的静态资源目录地址。因此,我们不用输入设置的静态资源目录名字就能直接访问。

2、我就想要加上静态资源目录名字访问,该怎么做?

修改server.js。在express挂载静态资源目录的时候,加上虚拟路由。

const express = require('express')
const server = express()const startServer = () => {server.use('/resource/more',express.static('./resource/more')) //设置静态资源访问目录server.listen(1085, '127.0.0.1', () => {console.log(`服务已经启动:http://127.0.0.1:1085`)})
}module.exports = { startServer }

这个时候,我们就可以全路径访问了:

挂载的时候,甚至可以取一些奇奇怪怪的名字,

关于使用NodeJS+Express搭建服务器访问静态资源的一些填坑经验相关推荐

  1. nginx配置静态资源html,通过nginx服务器访问静态资源(示例代码)

    通过nginx服务器访问静态资源 引言 之前在做毕设的时候接触过nginx,那时候是用来做前后端分离的.一转眼都快一年了,nginx的相关内容也忘的差不多了. 有过接触前端的同学都知道,直接在标签的s ...

  2. nodejs+express搭建服务器

    1.Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具. 使用 Express 可以快速地搭建一个完整功能 ...

  3. nodejs express搭建服务器(爬虫知乎精华帖,个人学习用)六 在express中建立路由

    创建express的过程以及开启html引擎我就不赘述了. var express = require('express'); var router = express.Router(); var m ...

  4. 虚拟服务器nodejs项目部署打包,nodejs+express搭建服务器及vue项目部署打包

    一.Express 1.Node.js 2.Express Express是一个保持最小规模的灵活的Node.js web应用程序开发框架,为web和移动应用程序提供一组强大的功能 安装: npm i ...

  5. nodejs express搭建服务器(爬虫知乎精华帖,个人学习用)六 html

    使用的是express后台返回html. res.render('xxx(html名称)'); 有可能在浏览器里看到的是静态文件,是因为浏览器把它认为是文件格式,所以要设置头 res.set({'Co ...

  6. nodejs express搭建服务器(爬虫知乎精华帖,个人学习用)四 存储提到的内容的次数

    var cheerio = require('cheerio'); var iconv = require('iconv-lite'); var https= require('https'); va ...

  7. nodejs express搭建服务器(爬虫知乎精华帖,个人学习用)一 爬取所有话题类型

    首先爬取话题广场所有话题. var cheerio = require('cheerio'); var iconv = require('iconv-lite'); var https= requir ...

  8. nodejs express搭建服务器(爬虫知乎精华帖,个人学习用)五 对提到的关键字(书名或者电影名)去百度百科上爬取介绍

    var https = require('https'); var iconv = require('iconv-lite'); var cheerio = require('cheerio'); v ...

  9. NodeJs本地搭建服务器,模拟接口请求,获取json数据

    最近在学习Node.js,虽然就感觉学了点皮毛,感觉这个语言还不错,并且也会一步步慢慢的学着的,这里实现下NodeJs本地搭建服务器,模拟接口请求,获取json数据. 具体的使用我就不写了,这个博客写 ...

最新文章

  1. bfgs算法matlab程序,BFGS优化算法及应用实例.docx
  2. BUUCTF-pwn2_sctf_2016(整数溢出+泄露libc)
  3. [常用类]Scanner 类
  4. 搞定系统设计 01:从 0 到百万用户的系统
  5. html怎么在字体中加波浪线,CSS3实现文字波浪线效果
  6. PowerShell简介
  7. Image.fromarray的用法(实现array到image的转换)
  8. 数据挖掘概念与技术第三版 范明、孟晓峰译 第三章习题答案
  9. 高级程序员的自我修养:如何才能成长为牛逼的高级程序员?
  10. 网站域名综合查询-批量免费网站域名综合查询工具
  11. 简析内容付费趋势,问题和路径
  12. android9.0 SystemUI锁屏页面固定横屏
  13. 全景分割相关论文写作与准备笔记
  14. SKR EOS 竞猜游戏再遭攻击,黑客共获利约4000eos
  15. 关于SQL中not exists的双重否定的一些记录
  16. 程序员每天累成狗,是为了什么
  17. 安兔兔V9版正式公测 热门旗舰机跑分变化很大
  18. lil9341_使用Python评估Lil John的“拒绝接受什么”
  19. [CF891E]Lust
  20. 数据库考研真题回忆版

热门文章

  1. 早前报道:泛鑫保险美女高管携款5亿元潜逃海外
  2. Scrapy爬取美女图片续集
  3. 华为发布凌霄芯片华为正式发布鸿蒙,凌霄芯片
  4. POC阶段需要注意什么
  5. 西门子数控免授权数据采集CNC采集实战二
  6. web前端卡片样式_css完成卡片式图片结果_WEB前端开发
  7. 机房收费系统—项目开发总结报告
  8. 大一下 c + + 上机实验总结(五)
  9. 怎样向一个外行人解释操作系统内核?+一篇有关将黑客帝国比作操作系统的旧文
  10. 《中国棒球》:推进备战·开启新篇章