使用node.js实现apache功能

先实现在url中输入文件路径能展示对应文件内容功能

const http = require(‘http‘)
const fs = require(‘fs‘)

const server = http.createServer()

const wwwDir = ‘/Users/lianglanlan/Desktop/code/study/node/www‘

server.on(‘request‘, (req, res) => {
    const url = req.url

    let filePath = ‘/index.html‘

    if (url !== ‘/‘) {
        filePath = url
    }
    fs.readFile(wwwDir + filePath, (err, data) => {
        if (err) {
            console.log(err)
            return res.end(‘404 Not Found‘)
        }
        res.end(data)
    })
})

server.listen(3010, () => {
    console.log(‘running...‘)
})

原文地址:https://www.cnblogs.com/lianglanlan/p/12196099.html

时间: 2024-08-29 10:58:46

使用node.js实现apache功能的相关文章

用 node.js 模仿 Apache 的部分功能

首先,这个例子用到了服务端渲染的技术.服务端渲染,说白了就是在服务端使用模板引擎,这里我先简单的介绍一下服务端渲染与客户端渲染之间的区别. 服务端渲染与客户端渲染之间的区别: 客户端渲染不利于搜索引擎优化 服务端渲染可以被爬虫抓取到,而客户端异步渲染很难被爬虫抓取到(例如:AJAX) 大部分的网站既不是纯异步(客户端),也不是纯服务端渲染出来的,而是两者结合的 例如:京东的商品列表采用的就是服务端渲染,目的是为了SEO搜索引擎优化,说白了就是为了能够被搜索到,且能被爬虫抓取(搜索引擎本身也是一种

node.js实现CURL功能

PHP中的CURL功能很好实现,直接四五行代码封装一下就OK了.node.js中如何实现CURL的功能呢,下面详细介绍. 这里需要用到request这个库,所以先安装此包: npm install request 安装下来之后, 就是代码实现的问题了.示例代码如下(只实现了POST方法): var request = require('request'); request.post( { url:'http://hovertree.com:9095/phpTest.php', form:{ us

node.js前后台交互示例 -- 使用node.js实现用户注册功能

node.js环境自行搭建,参考菜鸟教程的node.js就可以. 1 通过ajax提交index.html中form表单 register.html文件如下: <!doctype html> <html> <head> <meta charset="UTF-8" /> <title>Document</title> <script src="jquery.js"></scrip

Node.js的线程和进程

http://www.admin10000.com/document/4196.html 前言 很多Node.js初学者都会有这样的疑惑,Node.js到底是单线程的还是多线程的?通过本章的学习,能够让读者较为清晰的理解Node.js对于单/多线程的关系和支持情况.同时本章还将列举一些让Node.js的web服务器线程阻塞的例子,最后会提供Node.js碰到这类cpu密集型问题的解决方案. 在学习本章之前,读者需要对Node.js有一个初步的认识,熟悉Node.js基本语法.cluster模块.

笔记-Node.js中的核心API之HTTP

最近正在学习Node,在图书馆借了基本关于Node的书,同时在网上查阅资料,颇有收获,但是整体感觉对Node的理解还是停留在一个很模棱两可的状态.比如Node中的模块,平时练习就接触到那么几个,其他的一些模块暂时只会在学习的时候接触到,不常用便就荒废了.正所谓好记心不如烂笔头,多做笔记还是更有利于理解和记忆.自己做的总结也方便回头复习,所以决定踏上漫长的修炼之旅-- Node提供了许多API,其中一些比较重要.这些核心的API是所有Node应用的支柱,你会不停的用到他们. HTTP服务器 Nod

[转] Node.js的线程和进程

[From] http://www.admin10000.com/document/4196.html 前言 很多Node.js初学者都会有这样的疑惑,Node.js到底是单线程的还是多线程的?通过本章的学习,能够让读者较为清晰的理解Node.js对于单/多线程的关系和支持情况.同时本章还将列举一些让Node.js的web服务器线程阻塞的例子,最后会提供Node.js碰到这类cpu密集型问题的解决方案. 在学习本章之前,读者需要对Node.js有一个初步的认识,熟悉Node.js基本语法.clu

《基于Node.js实现简易聊天室系列之总结》

前前后后完成这个聊天室的Demo花了大概一个星期,当然一个星期是仅仅指编码的工作.前期的知识储备是从0到1从无到有,花费了一定的时间熟悉Node.js的基本语法以及Node.js和mongoDB之间的交互的过程.Demo中的重难点是socket.io的运行机制,从将socket.io绑定到服务器server上,到服务器和客户端双方都利用emit和on方法进行自定事件的处理.下面分别着重就上述几点进行讲解. Node.js Node.js创建服务器以及执行类似后台语言的操作.最近,也在接触C#,在

Node.js中的模块化

每天一篇文章来记录记录自己的成长吧.大二,该静心了.加油~ 好了,废话不多说,今天说说nodejs中的模块化.(注:此文为自己对书nodejs实战的总结) nodejs一个重要的特性就是模块化,模块就是node.js对常用功能进行分组的方式.而且,node无需真正辨别模块到底是我们自己编写的还是从外部仓库中获取的.这样我们只需要一个额外的json文档和一两行代码,我们就能引用别人的代码或者别人引用我们的代码,是不是很酷~. 好,下面我们来编写一个简单的模块: exports.hello_worl

Node.js成为下一个大事件的七大原因

现代的开发人员旨在于定期创造新的东西,可能每隔一两个月会交付推出一项新的技术.一些没有很好派生和管理地技术当然就会很快地消失.Node.js似乎与这些技术截然不同,自2009年推出以来,它目前的技术已经相当成熟,并且越来越受欢迎! Node.js是为在服务器端和客户端使用JavaScript创建应用程序的一个开源的平台.JavaScript的增涨使用已经改变了今天的开发主体,在这样的一个大背景下,Node.js现在已经成为了很多开发人员的重要工具.Node.js使用了Google的V8引擎,它有