javascript - express中无法使用ES6。

查看:124
本文介绍了javascript - express中无法使用ES6。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

express中无法使用ES6。
在静态文件中es6是被解析了的,在webpack->module->loaders(通过babel- loader)

            test: /\.(js|jsx)$/,
            loader: "babel",
            exclude:/node_modules/,

但是在服务端的文件夹中无法识别报错:ReferenceError: promise is not defined

new promise(()=>{
        mongodb.open()
    }).then(function (db) {
        return db.collection('posts');
    }).then(function (collection) {
        let query = {};
        if (name){
            query.name = name
        }
        return collection.find(query).sort({time:-1})
            .toArray()
    }).then((docs)=>{
        return callback(null,docs)
    }).catch(function (err) {
        mongodb.close();
        return callback(err)
    });
    
    

以下文件是我的依赖:

    "dependencies": {
    "babel-loader": "~5.3.2",
    "babel-preset-es2015": "^6.14.0",
    "babel-preset-react": "^6.11.1",
    "babel-preset-stage-0": "latest",
    "body-parser": "~1.15.1",
    "bundle-loader": "^0.5.4",
    "jquery" : "latest",
    "co-body": "latest",
    "co-views": "~0.2.0",
    "cookie-parser": "~1.4.3",
    "cross-env": "latest",
    "css-loader": "~0.23.0",
    "debug": "~2.2.0",
    "ejs": "~2.4.1",
    "express": "~4.13.4",
    "file-loader": "~0.8.5",
    "json-loader": "^0.5.4",
    "jsx-loader": "~0.13.2",
    "morgan": "~1.7.0",
    "node-sass": "^3.4.2",
    "ramda": "latest",
    "raw-loader": "~0.5.1",
    "react": "~0.14.2",
    "react-dom": "~0.14.2",
    "react-router": "latest",
    "reload": "latest",
    "sass-loader": "~3.0.0",
    "serve-favicon": "~2.3.0",
    "style-loader": "~0.13.0",
    "supervisor": "latest",
    "url-loader": "~0.5.6",
    "webpack": "~1.12.6",
    "webpack-dev-server": "~1.12.1",
    "webpack-require-http": "latest",
    "mongodb": "latest",
    "express-session": "latest",
    "connect-mongo": "latest",
    "connect-flash": "0.1.1"
  },
  "devDependencies": {
    "babel-cli": "^6.14.0",
    "babel-core": "^6.14.0",
    "babel-preset-react-hmre": "^1.1.1",
    "babel-preset-stage-2": "^6.13.0"
  }
  

并且在根目录下已经添加了.babellrc文件也没有用,依然报错

    {
  "presets": ["es2015"]
}

求大神指点一二~~!

解决方案

试一试把promise首字母大写?node环境应该是直接支持Promise对象的

这篇关于javascript - express中无法使用ES6。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆