• node后台初始配置(2)


         一、node-app结构

      创建成功node-app项目后,会自动生成一些文件一般初始的结构如下图

      

      在bin文件夹里面只有一个文件www

           var port = normalizePort(process.env.PORT || '3000');里面这一行里面的3000是运行的端口号,可以修改为随意数字,运行的localhost:xxxx保持一致
          在public存放的是用到的静态文件,包括images、javascript、stylesheets文件夹,也可以自己添加个html文件夹,在测试时候可以使用
     
      在routes里面写你定义的前端调用的接口文件
     
      在views里面是定义的jade模板,一般是用不到的,不用管!
     
      根目录的app.js是项目运行时候首先调用的文件需要做些配置
      二、app.js配置
      为了更好的维护把路由页面写在了routes中所以这个文件里面的indexRouter,usersRouter有关的删除,
      在里面引入routes,把app导入到routes首文件里,因为我在routes中使用index.js文件作为首文件,所以./routes/index.js可以简写。
      
      在routes文件夹里重新导出router,在routes/index.js中引入路由文件users.js。使用module.exports导出
      var users = require('./users.js');
      module.exports = function (app) {
        app.use('/', users); // 这里我重设置为第一个页面,所以localhost:3000展示文字会变
      }
      这样虽然可以使用但是调用api时候会出现跨域,所以还要做跨域处理
      三、处理跨域
        //跨域问题
       app.all('*',function (req, res, next) {
         res.header('Access-Control-Allow-Origin', req.headers.origin);
         res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, 
         Authorization, Accept, X-Requested-With , yourHeaderFeild');
         res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, 
         OPTIONS');
         res.header('Access-Control-Allow-Credentials', true)
    
        if (req.method == 'OPTIONS') {
          res.send(200); /让options请求快速返回/
        } else {
          next();
       }
      });
    

      这样才算配置结束(根据需要可以添加其他配置)结果如下图

     
      重启npm start 运行localhost:3000看是否还能正常调用
     
      四、package-lock.json、package.json是配置文件,要是npm配置插件时候才会变化
     
      五、导入数据库,短信
            使用mysql ,要安装后才能用 npm install mysql --save(mysql怎么安装,有空我在写一篇文章,怎么在node使用mysql和短信在下一篇文章中)
            这里在根目录新建一个config.json文件,统一把需要配置的特殊内容放在一起,(如果使用redis也写在一起)
       短信这里使用的阿里云的短信,(阿里云短信需要申请账号才能使用)阿里云的文档上面有详细的使用方法(阿里云短信文档
       {
    	"mysql": {
    		"host": "120.xx.xxx.xx",  // mysql的主机地址
    		"user": "root", // 用户名
    		"port": 3306, // 渡口
    		"password": "xxxx", // 密码
    		"database": "xxx", // 调用的数据库名称
    		"charset": "UTF8MB4_GENERAL_CI"  // 字符编码
    	},
    	"redis": { // 不使用的话不写
    		"RDS_PORT": "",
    		"RDS_HOST": "",
    		"RDS_PWD": ""
    	},
    	"duanxin": {
    		"SignName": "xxxxxx", // :短信签名
    		"TemplateCode": "xxxxxx",// 短信模板
    		"key": "xxxxxx",//用户
    		"secret": "xxxxxxx"//用来验证用户的密钥
    	}
       }
    

      

      
  • 相关阅读:
    CDH 下线节点
    Linux下如何查看哪些进程占用的CPU内存资源最多
    CentOS7安装iptables防火墙
    Mysql 编译报错 g++: internal compiler error: Killed (program cc1plus) 解决办法
    Jenkins配置gitlab
    mysql连接卡死,很多线程sleep状态,导致CPU中mysqld占用率极高
    c++0.1-----基于对象知识大综合(非指针篇)
    c++0.0-----挖坑
    python0.16------构造函数/析构函数/self详解/重写/访问限制/对象属性和类属性/@property/运算符重载
    python0.15-----继承和多态
  • 原文地址:https://www.cnblogs.com/muzimumu/p/11890817.html
Copyright © 2020-2023  润新知